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

void __regparm3 do_ssh2_authconn(Ssh_conflict ssh,uchar *in,int inlen,Packet *pktin)

{
  bufchain *ch;
  void **ppvVar1;
  int iVar2;
  char cVar3;
  uchar uVar4;
  Conf *pCVar5;
  code *pcVar6;
  uint uVar7;
  size_t sVar8;
  size_t sVar9;
  int iVar10;
  Packet *pPVar11;
  int *piVar12;
  tree234 *ptVar13;
  Filename *pFVar14;
  uchar *puVar15;
  uchar *sigblob_v;
  ssh_channel *psVar16;
  prompt_t **pppVar17;
  prompts_t *ppVar18;
  char *pcVar19;
  int iVar20;
  ulong uVar21;
  uint uVar22;
  undefined1 *puVar23;
  void *pvVar24;
  agent_pending_query *paVar25;
  undefined *puVar26;
  X11Display *pXVar27;
  X11FakeAuth *pXVar28;
  ssh_gss_liblist *psVar29;
  int iVar30;
  int padsize;
  int padsize_00;
  int extraout_ECX;
  int extraout_ECX_00;
  uint *extraout_EDX;
  uint *puVar31;
  undefined4 extraout_EDX_00;
  ssh_gss_library *psVar32;
  int iVar33;
  uint *puVar34;
  char *pcVar35;
  uint *puVar36;
  int in_GS_OFFSET;
  ssh2_userkey *local_64;
  char **local_60;
  int local_54;
  char *name;
  char *inst;
  char *lang;
  int name_len;
  int inst_len;
  int len;
  char *methods;
  char *error;
  char *local_28;
  uchar x [4];
  
  piVar12 = (int *)ssh->do_ssh2_authconn_state;
  iVar2 = *(int *)(in_GS_OFFSET + 0x14);
  if (piVar12 == (int *)0x0) {
    piVar12 = (int *)safemalloc(1,0xe8);
    ssh->do_ssh2_authconn_state = piVar12;
    *piVar12 = 0;
LAB_0002d8d0:
    iVar20 = ssh->bare_connection;
    ssh->packet_dispatch[6] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;
    piVar12[2] = 0;
    piVar12[0xe] = 0;
    piVar12[0xd] = 0;
    piVar12[0x1c] = 0;
    piVar12[0xb] = 0;
    if (iVar20 == 0) {
      iVar20 = conf_get_int(ssh->conf,0x23);
      if (iVar20 == 0) {
        pPVar11 = ssh2_pkt_init(5);
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,"ssh-userauth");
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
LAB_0002fadd:
        *piVar12 = 0x246f;
        goto LAB_0002d320;
      }
LAB_0002dbfb:
      if (piVar12[2] == 0) {
        pPVar11 = ssh2_pkt_init(5);
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,"ssh-connection");
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
LAB_0002dc2e:
        *piVar12 = 0x247a;
        goto LAB_0002d320;
      }
    }
    else {
LAB_0002d973:
      piVar12[0xd] = 1;
    }
LAB_0002d97a:
    bufchain_init(&ssh->banner);
    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;
    piVar12[0x14] = 0;
    if (piVar12[0xd] == 0) {
      pFVar14 = conf_get_filename(ssh->conf,0x20);
      piVar12[0x2f] = (int)pFVar14;
      iVar20 = filename_is_null(pFVar14);
      if (iVar20 == 0) {
        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);
        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);
        iVar20 = key_type((Filename *)piVar12[0x2f]);
        if ((iVar20 == 9) || (iVar20 == 3)) {
          puVar15 = ssh2_userkey_loadpub
                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,
                               (char **)(piVar12 + 0x19),&error);
          piVar12[0x14] = (int)puVar15;
          if (puVar15 != (uchar *)0x0) {
            piVar12[0x16] = (uint)(iVar20 == 3);
            if (iVar20 != 3) goto LAB_0002fb9e;
            goto LAB_0002fbb1;
          }
LAB_00030219:
          logeventf(ssh,"Unable to load key (%s)",error);
          pcVar19 = error;
          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);
          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);
          sVar8 = strlen(pcVar19);
          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);
          safefree(pcVar19);
        }
        else if (iVar20 == 10) {
          puVar15 = ssh2_userkey_loadpub
                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,
                               (char **)(piVar12 + 0x19),&error);
          piVar12[0x14] = (int)puVar15;
          if (puVar15 == (uchar *)0x0) goto LAB_00030219;
          piVar12[0x16] = 0;
LAB_0002fb9e:
          logeventf(ssh,"Key file contains public key only",pcVar19);
LAB_0002fbb1:
          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);
          piVar12[0x17] = iVar20;
        }
        else {
          pcVar19 = key_type_to_str(iVar20);
          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);
          pcVar19 = key_type_to_str(iVar20);
          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);
          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);
          sVar8 = strlen(pcVar19);
          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);
          safefree(pcVar19);
          piVar12[0x14] = 0;
        }
      }
      piVar12[0x1c] = 0;
      piVar12[0x21] = 0;
      piVar12[0x1f] = 0;
      iVar20 = conf_get_int(ssh->conf,0x1c);
      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {
        logevent(ssh->frontend,"Pageant is running. Requesting keys.");
        piVar12[0x1a] = 0x1000000;
        *(undefined1 *)(piVar12 + 0x1b) = 0xb;
        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);
        ssh->auth_agent_query = paVar25;
        if (paVar25 != (agent_pending_query *)0x0) {
LAB_0002eb58:
          *piVar12 = 0x24d9;
          goto LAB_0002d320;
        }
LAB_0002d78a:
        pcVar19 = error;
        piVar12[0x1c] = (int)error;
        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {
          logevent(ssh->frontend,"Failed to get reply from Pageant");
        }
        else {
          uVar22 = *(uint *)(error + 5);
          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                         uVar22 << 0x18);
          piVar12[0x21] = iVar20;
          if (iVar20 < 0) {
            pcVar19 = "Pageant response contained a negative key count %d";
          }
          else {
            puVar36 = (uint *)(pcVar19 + 9);
            iVar33 = piVar12[0x1e] + -9;
            puVar31 = puVar36;
            if (iVar20 == 0) {
LAB_00030479:
              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);
              if (piVar12[0x14] != 0) {
                if (0 < piVar12[0x21]) {
                  iVar20 = 0;
                  do {
                    uVar22 = *puVar36;
                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8
                                  | uVar22 << 0x18);
                    piVar12[0x25] = sVar8;
                    if ((sVar8 == piVar12[0x15]) &&
                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {
                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);
                      piVar12[0x20] = iVar20;
                      piVar12[0x1f] = (int)puVar36;
                      goto LAB_0002d7b9;
                    }
                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);
                    iVar20 = iVar20 + 1;
                    uVar22 = *puVar36;
                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |
                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);
                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);
                  } while (iVar20 < piVar12[0x21]);
                }
                if (piVar12[0x1f] == 0) {
                  logevent(ssh->frontend,"Configured key file not in Pageant");
                  piVar12[0x21] = 0;
                }
              }
              goto LAB_0002d7b9;
            }
            iVar10 = 0;
            puVar34 = puVar36;
            if (3 < iVar33) {
              while( true ) {
                uVar22 = *puVar34;
                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                               uVar22 << 0x18);
                if (iVar33 - 4U < uVar22) break;
                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);
                uVar7 = *puVar34;
                iVar33 = ((iVar33 - 4U) - uVar22) + -4;
                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |
                               uVar7 << 0x18);
                if ((iVar30 < 0) || (iVar33 < iVar30)) break;
                iVar33 = iVar33 - iVar30;
                iVar10 = iVar10 + 1;
                iVar20 = piVar12[0x21];
                puVar31 = extraout_EDX;
                if (iVar20 <= iVar10) goto LAB_00030479;
                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);
                if (iVar33 < 4) break;
              }
            }
            pcVar19 = "Pageant response was truncated";
          }
          logeventf(ssh,pcVar19);
          piVar12[0x21] = 0;
        }
      }
LAB_0002d7b9:
      piVar12[0x13] = 0;
      if (piVar12[0xd] == 0) {
LAB_0002d7cb:
        pcVar19 = get_remote_username(ssh->conf);
        ssh->username = pcVar19;
        if (pcVar19 == (char *)0x0) {
          ppVar18 = new_prompts(ssh->frontend);
          piVar12[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          pcVar19 = dupstr("SSH login name");
          ppVar18->name = pcVar19;
          pcVar19 = dupstr("login as: ");
          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);
          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);
LAB_0002f3ea:
          if (iVar20 < 0) {
            ssh->send_ok = 1;
            goto LAB_0002e8c8;
          }
          if (iVar20 == 0) {
            free_prompts((prompts_t *)piVar12[0xf]);
            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);
            *piVar12 = 0;
            goto LAB_0002d320;
          }
          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);
          ssh->username = pcVar19;
          free_prompts((prompts_t *)piVar12[0xf]);
        }
        else if (((byte)flags & 5) != 0) {
          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);
          sVar8 = strlen(pcVar19);
          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);
          safefree(pcVar19);
        }
LAB_0002d7f9:
        piVar12[0x13] = 1;
        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;
        pPVar11 = ssh2_pkt_init(0x32);
        pcVar19 = ssh->username;
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,pcVar19);
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
        piVar12[1] = 0;
        piVar12[3] = 0;
        piVar12[0xd] = 0;
        piVar12[8] = 0;
        piVar12[0xc] = 0;
        piVar12[9] = 0;
        if (piVar12[0x1c] != 0) {
          if (piVar12[0x1f] == 0) {
            piVar12[0x20] = 0;
            piVar12[0x1d] = piVar12[0x1c] + 9;
          }
          else {
            piVar12[0x1d] = piVar12[0x1f];
          }
        }
LAB_0002d310:
        *piVar12 = 0x25a0;
        goto LAB_0002d320;
      }
    }
    else {
      piVar12[0x13] = 0;
    }
LAB_0002d9b1:
    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;
    if (piVar12[0x14] != 0) {
      safefree((void *)piVar12[0x18]);
      safefree((void *)piVar12[0x14]);
      safefree((void *)piVar12[0x19]);
    }
    if ((void *)piVar12[0x1c] != (void *)0x0) {
      safefree((void *)piVar12[0x1c]);
    }
    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {
      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);
    }
    ptVar13 = newtree234(ssh_channelcmp);
    ssh->channels = ptVar13;
    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;
    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;
    iVar20 = conf_get_int(ssh->conf,0x2d);
    if (iVar20 == 0) {
      psVar16 = (ssh_channel *)safemalloc(1,0x5c);
      ssh->mainchan = psVar16;
      psVar16->ssh = ssh;
      ssh_channel_init(psVar16);
      pcVar19 = conf_get_str(ssh->conf,0x2e);
      if (*pcVar19 == '\0') {
        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,
                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45
                                    );
        piVar12[0x2e] = (int)pPVar11;
        logevent(ssh->frontend,"Opening session as main channel");
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
        ssh->ncmode = 0;
      }
      else {
        iVar20 = conf_get_int(ssh->conf,0x2f);
        pcVar19 = conf_get_str(ssh->conf,0x2e);
        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");
        ssh->ncmode = 1;
      }
LAB_0002e0c6:
      *piVar12 = 0x2a03;
      goto LAB_0002d320;
    }
    ssh->mainchan = (ssh_channel *)0x0;
LAB_0002da71:
    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;
    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;
    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;
    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;
    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;
    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;
    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;
    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;
    ssh->packet_dispatch[99] = ssh2_msg_channel_response;
    ssh->packet_dispatch[100] = ssh2_msg_channel_response;
    if (ssh->connshare != (void *)0x0) {
      share_activate(ssh->connshare,ssh->v_s);
    }
    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {
      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",
                                  (cchandler_fn_t)0x0,(void *)0x0);
      piVar12[0x2e] = (int)pPVar11;
      ssh2_pkt_send(ssh,pPVar11);
    }
    ssh_setup_portfwd(ssh,ssh->conf);
    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {
      ssh->echoing = 1;
      ssh->editing = 1;
LAB_0002db48:
      ssh->state = ADDRTYPE_NAME;
      if (ssh->size_needed != 0) {
        ssh_size(ssh,ssh->term_width,ssh->term_height);
      }
      if (ssh->eof_needed != 0) {
        ssh_special(ssh,TS_EOF);
      }
      if (ssh->ldisc != (void *)0x0) {
        ldisc_echoedit_update(ssh->ldisc);
      }
      if (ssh->mainchan != (ssh_channel *)0x0) {
        ssh->send_ok = 1;
      }
LAB_0002db95:
      *piVar12 = 0x2abd;
      goto LAB_0002d320;
    }
    iVar20 = conf_get_int(ssh->conf,0x95);
    if (iVar20 != 0) {
      pCVar5 = ssh->conf;
      pcVar19 = conf_get_str(pCVar5,0x96);
      pXVar27 = x11_setup_display(pcVar19,pCVar5);
      ssh->x11disp = pXVar27;
      if (pXVar27 == (X11Display *)0x0) {
        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");
      }
      else {
        iVar20 = conf_get_int(ssh->conf,0x97);
        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);
        ssh->x11auth = pXVar28;
        pXVar28->disp = ssh->x11disp;
        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);
      }
    }
    iVar20 = ssh_agent_forwarding_permitted(ssh);
    if (iVar20 != 0) {
      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);
    }
    iVar20 = conf_get_int(ssh->conf,0x16);
    if (iVar20 == 0) {
      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);
    }
    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);
    if (ssh->fallback_cmd == 0) {
      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);
      iVar20 = 0x14;
    }
    else {
LAB_0002feab:
      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);
      iVar20 = 0x15;
    }
    pcVar19 = conf_get_str(ssh->conf,iVar20);
    if (local_64 == (ssh2_userkey *)0x0) {
      if (*pcVar19 != '\0') {
        pcVar35 = "exec";
        goto LAB_0002f28b;
      }
      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);
      piVar12[0x2e] = (int)pPVar11;
    }
    else {
      pcVar35 = "subsystem";
LAB_0002f28b:
      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);
      piVar12[0x2e] = (int)pPVar11;
      ssh_pkt_addstring(pPVar11,pcVar19);
      pPVar11 = (Packet *)piVar12[0x2e];
    }
    ssh2_pkt_send(ssh,pPVar11);
  }
  else {
    iVar20 = *piVar12;
    if (iVar20 == 0x27b6) {
      if (pktin == (Packet *)0x0) {
LAB_0002d664:
        *piVar12 = 0x27b6;
        goto LAB_0002d320;
      }
      if (pktin->type == 0x3c) {
        ssh_pkt_getstring(pktin,&methods,&len);
        piVar12[0x34] = len;
        sVar8 = piVar12[0x32];
        piVar12[0x35] = (int)methods;
        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&
           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {
          iVar20 = (**(code **)(piVar12[0x30] + 0xc))
                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);
          piVar12[0x39] = iVar20;
          if (iVar20 == 0) {
            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);
            piVar12[0x39] = iVar20;
            if (iVar20 == 0) {
              piVar12[0x34] = 0;
              piVar12[0x35] = 0;
              piVar12[0x36] = 0;
              piVar12[0x37] = 0;
LAB_0002efad:
              local_64 = (ssh2_userkey *)(piVar12 + 0x31);
              pcVar6 = *(code **)(piVar12[0x30] + 0x14);
              iVar20 = conf_get_int(ssh->conf,0x28);
              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,
                                 piVar12 + 0x36);
              piVar12[0x39] = uVar22;
              if (uVar22 < 2) {
                logevent(ssh->frontend,"GSSAPI authentication initialised");
                if (piVar12[0x36] != 0) {
                  pPVar11 = ssh2_pkt_init(0x3d);
                  piVar12[0x2e] = (int)pPVar11;
                  x[0] = '\0';
                  x[1] = '\0';
                  x[2] = '\0';
                  x[3] = '\0';
                  ssh_pkt_adddata(pPVar11,x,4);
                  pcVar19 = (char *)piVar12[0x37];
                  pPVar11->savedpos = pPVar11->length;
                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);
                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
                  (**(code **)(piVar12[0x30] + 0x18))
                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);
                }
                iVar20 = piVar12[0x39];
                if (iVar20 == 1) {
LAB_0002fcf7:
                  *piVar12 = 0x2807;
                  goto LAB_0002d320;
                }
              }
              else {
                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");
                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))
                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);
                if (iVar20 == 0) {
                  logevent(ssh->frontend,(char *)piVar12[0x33]);
                  safefree((void *)piVar12[0x33]);
                  iVar20 = piVar12[0x39];
                }
                else {
                  iVar20 = piVar12[0x39];
                }
              }
LAB_0002f049:
              if (iVar20 == 0) {
                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");
                pPVar11 = ssh2_pkt_init(0);
                iVar20 = pPVar11->length;
                piVar12[0x2e] = (int)pPVar11;
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                ssh_pkt_adddata(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                ssh_pkt_addstring_data
                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len
                          );
                error = (char *)CONCAT31(error._1_3_,0x32);
                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);
                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);
                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");
                iVar33 = ((int *)piVar12[0x2e])[4];
                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;
                piVar12[0x33] = iVar33 + iVar20;
                (**(code **)(piVar12[0x30] + 0x24))
                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);
                pPVar11 = ssh2_pkt_init(0x42);
                piVar12[0x2e] = (int)pPVar11;
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                ssh_pkt_adddata(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);
                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);
                piVar12[3] = 0;
                iVar20 = piVar12[0x30];
              }
              else {
LAB_0002e970:
                iVar20 = piVar12[0x30];
              }
              local_60 = (char **)(piVar12 + 0x38);
              local_64 = (ssh2_userkey *)(piVar12 + 0x31);
              (**(code **)(iVar20 + 0x10))(iVar20,local_60);
              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);
            }
            else {
              iVar33 = iVar20;
              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");
              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);
            }
          }
          else if (iVar20 == 3) {
            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");
          }
          else {
            logevent(ssh->frontend,"GSSAPI import name failed");
          }
        }
        else {
          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");
        }
      }
      else {
        logevent(ssh->frontend,"GSSAPI authentication request refused");
      }
      iVar20 = piVar12[3];
LAB_0002d2f8:
      methods = (char *)0x0;
      error = (char *)0x0;
      if (iVar20 == 0) goto LAB_0002d310;
LAB_0002d3e0:
      ch = &ssh->banner;
      sVar9 = bufchain_size(ch);
      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {
        pcVar19 = (char *)safemalloc(sVar9,1);
        bufchain_fetch(ch,pcVar19,sVar9);
        puVar26 = PTR_stderr_000a4fa0;
        if (((byte)flags & 2) == 0) {
          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);
        }
        else {
          pcVar35 = pcVar19;
          if (0 < (int)sVar9) {
            do {
              cVar3 = *pcVar35;
              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {
                fputc((int)cVar3,*(FILE **)puVar26);
              }
              pcVar35 = pcVar35 + 1;
            } while (pcVar35 != pcVar19 + sVar9);
          }
        }
        safefree(pcVar19);
      }
      bufchain_clear(ch);
      if (pktin->type == 0x34) {
        logevent(ssh->frontend,"Access granted");
        piVar12[0xe] = 1;
        piVar12[0xd] = 1;
        goto LAB_0002d9b1;
      }
      if (pktin->type == 0x33) {
        piVar12[3] = 0;
        ssh_pkt_getstring(pktin,&methods,(int *)&error);
        iVar20 = pktin->savedpos;
        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||
           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {
          iVar20 = piVar12[1];
          if (iVar20 != 0) {
            if (iVar20 - 2U < 2) {
              if (iVar20 == 2) {
                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);
              }
              logevent(ssh->frontend,"Server refused our key");
            }
            else if (iVar20 == 1) {
              c_write((Ssh_conflict)&ssh->frontend,
                      "Server refused public-key signature despite accepting key!\r\n",0x3c);
              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");
            }
            else if (iVar20 == 7) {
              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");
            }
            else if (iVar20 != 5) {
              if (iVar20 == 6) {
                logevent(ssh->frontend,"Keyboard-interactive authentication failed");
                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);
              }
              else {
                if (iVar20 != 4) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");
                }
                logevent(ssh->frontend,"Password authentication failed");
                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);
                iVar20 = conf_get_int(ssh->conf,0x1e);
                if (iVar20 != 0) {
                  pCVar5 = ssh->conf;
                  piVar12[0xd] = 0;
                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))
                  goto LAB_0002d7cb;
                  goto LAB_0002d7f9;
                }
              }
            }
          }
        }
        else {
          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);
          logevent(ssh->frontend,"Further authentication required");
        }
        pcVar35 = error;
        pcVar19 = methods;
        iVar20 = in_commasep_string("publickey",methods,(int)error);
        piVar12[5] = iVar20;
        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);
        piVar12[6] = iVar20;
        uVar22 = conf_get_int(ssh->conf,0x26);
        if (uVar22 != 0) {
          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);
          uVar22 = (uint)(iVar20 != 0);
        }
        piVar12[7] = uVar22;
        iVar20 = conf_get_int(ssh->conf,0x27);
        if ((iVar20 == 0) ||
           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {
          piVar12[10] = 0;
        }
        else {
          psVar29 = ssh->gsslibs;
          if (psVar29 == (ssh_gss_liblist *)0x0) {
            psVar29 = ssh_gss_setup(ssh->conf);
            ssh->gsslibs = psVar29;
          }
          piVar12[10] = (uint)(0 < psVar29->nlibraries);
        }
      }
      else {
        if (piVar12[1] != 5) {
          pcVar19 = "Strange packet received during authentication: type %d";
          goto LAB_0002dba9;
        }
        piVar12[3] = 0;
      }
      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;
      if (piVar12[5] != 0) {
        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {
          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;
          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);
          uVar22 = *(uint *)piVar12[0x1d];
          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                         uVar22 << 0x18);
          iVar33 = piVar12[0x1d];
          piVar12[0x25] = iVar10;
          iVar20 = iVar33 + 4;
          piVar12[0x22] = iVar20;
          piVar12[0x1d] = iVar20 + iVar10;
          uVar22 = *(uint *)(iVar33 + 4);
          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                         uVar22 << 0x18);
          piVar12[0x26] = iVar20;
          piVar12[0x23] = piVar12[0x22] + 4;
          uVar22 = *(uint *)piVar12[0x1d];
          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                         uVar22 << 0x18);
          piVar12[0x27] = iVar20;
          piVar12[0x24] = piVar12[0x1d] + 4;
          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;
          pPVar11 = ssh2_pkt_init(0x32);
          pcVar19 = ssh->username;
          piVar12[0x2e] = (int)pPVar11;
          ssh_pkt_addstring(pPVar11,pcVar19);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");
          len = len & 0xffffff00;
          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
          pPVar11 = (Packet *)piVar12[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          ssh_pkt_adddata(pPVar11,x,4);
          iVar20 = piVar12[0x26];
          pcVar19 = (char *)piVar12[0x23];
          pPVar11->savedpos = pPVar11->length;
          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);
          pPVar11 = (Packet *)piVar12[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          ssh_pkt_adddata(pPVar11,x,4);
          iVar20 = piVar12[0x25];
          pcVar19 = (char *)piVar12[0x22];
          pPVar11->savedpos = pPVar11->length;
          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);
          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
          piVar12[1] = 3;
          goto LAB_0002e2e0;
        }
        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {
          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;
          piVar12[8] = 1;
          pPVar11 = ssh2_pkt_init(0x32);
          pcVar19 = ssh->username;
          piVar12[0x2e] = (int)pPVar11;
          ssh_pkt_addstring(pPVar11,pcVar19);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");
          len = len & 0xffffff00;
          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);
          pPVar11 = (Packet *)piVar12[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          ssh_pkt_adddata(pPVar11,x,4);
          iVar20 = piVar12[0x15];
          pcVar19 = (char *)piVar12[0x14];
          pPVar11->savedpos = pPVar11->length;
          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);
          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
          logevent(ssh->frontend,"Offered public key");
LAB_0002f4f1:
          *piVar12 = 0x26df;
          goto LAB_0002d320;
        }
      }
      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {
        piVar12[1] = 5;
        piVar12[0xb] = 1;
        iVar20 = ngsslibs;
        piVar12[3] = 1;
        local_64 = (ssh2_userkey *)0x0;
        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;
        piVar12[0x30] = 0;
        if (iVar20 < 1) {
LAB_000301fa:
                    /* WARNING: Subroutine does not return */
          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");
        }
        do {
          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);
          iVar33 = ssh->gsslibs->nlibraries;
          if (0 < iVar33) {
            psVar32 = ssh->gsslibs->libraries;
            if (iVar10 == psVar32->id) {
LAB_0002ebb0:
              piVar12[0x30] = (int)psVar32;
              goto LAB_0002d550;
            }
            iVar30 = 0;
            while( true ) {
              psVar32 = psVar32 + 1;
              iVar30 = iVar30 + 1;
              if (iVar30 == iVar33) break;
              if (psVar32->id == iVar10) goto LAB_0002ebb0;
            }
          }
          local_64 = (ssh2_userkey *)((int)local_64 + 1);
        } while ((ssh2_userkey *)iVar20 != local_64);
        psVar32 = (ssh_gss_library *)piVar12[0x30];
LAB_0002d550:
        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;
        if (psVar32->gsslogmsg != (char *)0x0) {
          logevent(ssh->frontend,psVar32->gsslogmsg);
        }
        pPVar11 = ssh2_pkt_init(0x32);
        pcVar19 = ssh->username;
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,pcVar19);
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");
        logevent(ssh->frontend,"Attempting GSSAPI authentication");
        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);
        x[0] = '\0';
        x[1] = '\0';
        x[2] = '\0';
        x[3] = '\x01';
        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);
        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);
        len = CONCAT31(len._1_3_,6);
        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);
        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
        goto LAB_0002d664;
      }
      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {
        piVar12[1] = 6;
        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;
        pPVar11 = ssh2_pkt_init(0x32);
        pcVar19 = ssh->username;
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,pcVar19);
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");
        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");
LAB_0002e166:
        *piVar12 = 0x284b;
        goto LAB_0002d320;
      }
      if (piVar12[6] == 0) {
        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",
                            error,methods);
        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);
        safefree(pcVar19);
        *piVar12 = 0;
        goto LAB_0002d320;
      }
      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;
      ppVar18 = new_prompts(ssh->frontend);
      piVar12[0xf] = (int)ppVar18;
      ppVar18->to_server = 1;
      pcVar19 = dupstr("SSH password");
      ppVar18->name = pcVar19;
      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);
      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);
      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);
LAB_0002dc60:
      if (iVar20 < 0) {
        ssh->send_ok = 1;
LAB_0002d68e:
        *piVar12 = 0x28e8;
        goto LAB_0002d320;
      }
      ppVar18 = (prompts_t *)piVar12[0xf];
      if (iVar20 != 0) {
        pcVar19 = dupstr((*ppVar18->prompts)->result);
        piVar12[0x12] = (int)pcVar19;
        free_prompts((prompts_t *)piVar12[0xf]);
        pPVar11 = ssh2_pkt_init(0x32);
        pcVar19 = ssh->username;
        piVar12[0x2e] = (int)pPVar11;
        ssh_pkt_addstring(pPVar11,pcVar19);
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");
        len = len & 0xffffff00;
        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);
        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);
        logevent(ssh->frontend,"Sent password");
        piVar12[1] = 4;
        goto LAB_0002dd1c;
      }
LAB_0002ea6c:
      free_prompts(ppVar18);
LAB_0002ea71:
      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);
      *piVar12 = 0;
      goto LAB_0002d320;
    }
    if (iVar20 < 0x27b7) {
      if (iVar20 == 0x2561) {
        if (pktin == (Packet *)0x0) {
          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);
          ssh->send_ok = 0;
          goto LAB_0002f3ea;
        }
LAB_0002e8c8:
        *piVar12 = 0x2561;
        goto LAB_0002d320;
      }
      if (iVar20 < 0x2562) {
        if (iVar20 == 0x246f) {
          if (pktin == (Packet *)0x0) goto LAB_0002fadd;
          if (pktin->type != 6) goto LAB_0002dbfb;
          piVar12[2] = 1;
          goto LAB_0002d97a;
        }
        if (iVar20 < 0x2470) {
          if (iVar20 == 0) goto LAB_0002d8d0;
          goto LAB_0002d8a4;
        }
        if (iVar20 == 0x247a) {
          if (pktin != (Packet *)0x0) {
            if (pktin->type != 6) {
              pcVar19 = "Server refused service request";
              goto LAB_0002dba9;
            }
            goto LAB_0002d973;
          }
          goto LAB_0002dc2e;
        }
        if (iVar20 != 0x24d9) goto LAB_0002d8a4;
        if (pktin != (Packet *)0x0) goto LAB_0002dba0;
        if (0 < inlen) goto LAB_0002eb58;
        error = (char *)ssh->agent_response;
        piVar12[0x1e] = ssh->agent_response_len;
        goto LAB_0002d78a;
      }
      if (iVar20 == 0x2696) {
        if (pktin != (Packet *)0x0) {
LAB_0002dba0:
          pcVar19 = "Unexpected data from server while waiting for agent response";
          goto LAB_0002dba9;
        }
        if (0 < inlen) {
LAB_0002f388:
          *piVar12 = 0x2696;
          goto LAB_0002d320;
        }
        error = (char *)ssh->agent_response;
        piVar12[0x29] = ssh->agent_response_len;
LAB_0002e806:
        piVar12[0x2d] = (int)error;
        safefree((void *)piVar12[0x2c]);
        iVar20 = piVar12[0x2d];
        if (iVar20 != 0) {
          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||
             (uVar22 = *(uint *)(iVar20 + 5),
             piVar12[0x29] - 9U <
             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))
          {
            pcVar19 = "Pageant failed to answer challenge";
            goto LAB_0002dba9;
          }
          logevent(ssh->frontend,"Sending Pageant\'s response");
          uVar22 = *(uint *)(piVar12[0x2d] + 5);
          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],
                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),
                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |
                           uVar22 << 0x18);
          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
          piVar12[1] = 1;
        }
LAB_0002d6ed:
        if (piVar12[0x1f] == 0) {
          iVar33 = piVar12[0x20];
          iVar20 = piVar12[3];
          piVar12[0x20] = iVar33 + 1;
          if (piVar12[0x21] <= iVar33 + 1) {
            piVar12[9] = 1;
          }
        }
        else {
          piVar12[9] = 1;
          iVar20 = piVar12[3];
          piVar12[8] = 1;
        }
        goto LAB_0002d2f8;
      }
      if (0x2696 < iVar20) {
        if (iVar20 != 0x26df) {
          if (iVar20 == 0x2703) {
            if (pktin == (Packet *)0x0) {
              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);
              ssh->send_ok = 0;
              goto LAB_0002dd4a;
            }
LAB_0002d72e:
            *piVar12 = 0x2703;
            goto LAB_0002d320;
          }
          goto LAB_0002d8a4;
        }
        if (pktin != (Packet *)0x0) {
          if (pktin->type == 0x3c) {
            logevent(ssh->frontend,"Offer of public key accepted");
            if (((byte)flags & 1) != 0) {
              ppvVar1 = &ssh->frontend;
              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);
              pcVar19 = (char *)piVar12[0x19];
              sVar8 = strlen(pcVar19);
              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);
              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);
            }
            while (piVar12[0x17] != 0) {
              ppVar18 = new_prompts(ssh->frontend);
              piVar12[0xf] = (int)ppVar18;
              ppVar18->to_server = 0;
              pcVar19 = dupstr("SSH key passphrase");
              ppVar18->name = pcVar19;
              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);
              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);
              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);
LAB_0002dd4a:
              if (iVar20 < 0) {
                ssh->send_ok = 1;
                goto LAB_0002d72e;
              }
              ppVar18 = (prompts_t *)piVar12[0xf];
              if (iVar20 == 0) goto LAB_0002ea6c;
              pcVar19 = dupstr((*ppVar18->prompts)->result);
              free_prompts((prompts_t *)piVar12[0xf]);
              pFVar14 = conf_get_filename(ssh->conf,0x20);
              piVar12[0x2f] = (int)pFVar14;
              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);
              if (pcVar19 == (char *)0x0) {
                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)
                goto LAB_0002f5cf;
                goto LAB_0002ddec;
              }
              sVar8 = strlen(pcVar19);
              smemclr(pcVar19,sVar8);
              safefree(pcVar19);
              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;
              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);
            }
            pFVar14 = conf_get_filename(ssh->conf,0x20);
            piVar12[0x2f] = (int)pFVar14;
            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);
            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {
LAB_0002ddec:
              local_60 = &error;
              if (local_64 != (ssh2_userkey *)0x0) {
                pPVar11 = ssh2_pkt_init(0x32);
                pcVar19 = ssh->username;
                piVar12[0x2e] = (int)pPVar11;
                ssh_pkt_addstring(pPVar11,pcVar19);
                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");
                error = (char *)CONCAT31(error._1_3_,1);
                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);
                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);
                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);
                pPVar11 = (Packet *)piVar12[0x2e];
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                ssh_pkt_adddata(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);
                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;
                if ((ssh->remote_bugs & 0x80) != 0) {
                  sVar9 = sVar9 - 4;
                }
                pcVar19 = (char *)safemalloc(sVar9,1);
                if ((ssh->remote_bugs & 0x80) == 0) {
                  local_54 = 4;
                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);
                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);
                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);
                  pcVar19[3] = (char)ssh->v2_session_id_len;
                  pcVar35 = pcVar19 + 4;
                }
                else {
                  local_54 = 0;
                  pcVar35 = pcVar19;
                }
                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);
                local_54 = local_54 + ssh->v2_session_id_len;
                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),
                       *(int *)piVar12[0x2e] - 5);
                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {
                    /* WARNING: Subroutine does not return */
                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");
                }
                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);
                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,
                                 (int)methods,sigblob_v,(int)error);
                safefree(puVar15);
                safefree(sigblob_v);
                safefree(pcVar19);
                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);
                logevent(ssh->frontend,"Sent public key signature");
                piVar12[1] = 1;
                (*local_64->alg->freekey)(local_64->data);
                safefree(local_64->comment);
                safefree(local_64);
                iVar20 = piVar12[3];
                goto LAB_0002d2f8;
              }
            }
LAB_0002f5cf:
            ppvVar1 = &ssh->frontend;
            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);
            sVar8 = strlen(error);
            c_write((Ssh_conflict)ppvVar1,error,sVar8);
            c_write((Ssh_conflict)ppvVar1,")\r\n",3);
            iVar20 = piVar12[3];
            goto LAB_0002d2f8;
          }
          piVar12[3] = 1;
          piVar12[1] = 2;
          methods = (char *)0x0;
          error = (char *)0x0;
          goto LAB_0002d3e0;
        }
        goto LAB_0002f4f1;
      }
      if (iVar20 == 0x25a0) {
        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;
        goto LAB_0002d310;
      }
      if (iVar20 != 0x2650) goto LAB_0002d8a4;
      if (pktin != (Packet *)0x0) {
        if (pktin->type == 0x3c) {
          if (((byte)flags & 1) != 0) {
            ppvVar1 = &ssh->frontend;
            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);
            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);
            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);
          }
          pPVar11 = ssh2_pkt_init(0x32);
          pcVar19 = ssh->username;
          piVar12[0x2e] = (int)pPVar11;
          ssh_pkt_addstring(pPVar11,pcVar19);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");
          error = (char *)CONCAT31(error._1_3_,1);
          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);
          pPVar11 = (Packet *)piVar12[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          ssh_pkt_adddata(pPVar11,x,4);
          pcVar19 = (char *)piVar12[0x23];
          pPVar11->savedpos = pPVar11->length;
          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);
          pPVar11 = (Packet *)piVar12[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          ssh_pkt_adddata(pPVar11,x,4);
          pcVar19 = (char *)piVar12[0x22];
          pPVar11->savedpos = pPVar11->length;
          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);
          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;
          piVar12[0x28] = iVar20;
          if ((ssh->remote_bugs & 0x80) == 0) {
            iVar20 = iVar20 + 4;
          }
          else {
            piVar12[0x28] = iVar20 + -4;
          }
          iVar20 = iVar20 + 5 + piVar12[0x25];
          piVar12[0x2a] = iVar20 + 4;
          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);
          piVar12[0x2c] = (int)puVar23;
          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);
          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);
          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);
          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];
          piVar12[0x2b] = piVar12[0x2c] + 5;
          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;
          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);
          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);
          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);
          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];
          iVar20 = piVar12[0x2b];
          piVar12[0x2b] = iVar20 + 4;
          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);
          iVar20 = piVar12[0x2b];
          piVar12[0x2b] = piVar12[0x25] + iVar20;
          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);
          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);
          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);
          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];
          iVar20 = piVar12[0x2b];
          pvVar24 = (void *)(iVar20 + 4);
          piVar12[0x2b] = (int)pvVar24;
          if ((ssh->remote_bugs & 0x80) == 0) {
            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);
            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);
            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);
            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;
            pvVar24 = (void *)(piVar12[0x2b] + 4);
            piVar12[0x2b] = (int)pvVar24;
          }
          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);
          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);
          iVar20 = *(int *)piVar12[0x2e];
          iVar33 = ((int *)piVar12[0x2e])[4];
          piVar12[0x2b] = (int)pvVar24;
          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);
          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);
          piVar12[0x2b] = (int)puVar23;
          *puVar23 = 0;
          *(undefined1 *)(piVar12[0x2b] + 1) = 0;
          *(undefined1 *)(piVar12[0x2b] + 2) = 0;
          *(undefined1 *)(piVar12[0x2b] + 3) = 0;
          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,
                                ssh_agent_callback,ssh);
          ssh->auth_agent_query = paVar25;
          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;
          goto LAB_0002e806;
        }
        piVar12[3] = 1;
        goto LAB_0002d6ed;
      }
LAB_0002e2e0:
      *piVar12 = 0x2650;
      goto LAB_0002d320;
    }
    if (iVar20 == 0x2917) {
      if (pktin != (Packet *)0x0) {
        iVar20 = pktin->type;
        pcVar19 = "Server requested password change";
joined_r0x0002e302:
        if (iVar20 == 0x3c) {
          logevent(ssh->frontend,pcVar19);
          sVar8 = strlen(pcVar19);
          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);
          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);
          ssh_pkt_getstring(pktin,&methods,(int *)&error);
          ppVar18 = new_prompts(ssh->frontend);
          piVar12[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          pcVar19 = dupstr("New SSH password");
          ppVar18->name = pcVar19;
          iVar20 = piVar12[0xf];
          pcVar19 = methods;
          if (methods == (char *)0x0) {
            pcVar19 = "";
          }
          pcVar19 = dupprintf("%.*s",error,pcVar19);
          *(char **)(iVar20 + 0xc) = pcVar19;
          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;
          pcVar19 = dupstr("Current password (blank for previously entered password): ");
          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);
          pcVar19 = dupstr("Enter new password: ");
          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);
          pcVar19 = dupstr("Confirm new password: ");
          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);
          while( true ) {
            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);
LAB_0002e42a:
            if (iVar20 < 0) {
              ssh->send_ok = 1;
              goto LAB_0002e5f0;
            }
            if (iVar20 == 0) {
              free_prompts((prompts_t *)piVar12[0xf]);
              pcVar19 = (char *)piVar12[0x12];
              sVar8 = strlen(pcVar19);
              smemclr(pcVar19,sVar8);
              safefree((void *)piVar12[0x12]);
              goto LAB_0002ea71;
            }
            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;
            if (*(*pppVar17)->result != '\0') {
              pcVar19 = (char *)piVar12[0x12];
              sVar8 = strlen(pcVar19);
              smemclr(pcVar19,sVar8);
              safefree((void *)piVar12[0x12]);
              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));
              piVar12[0x12] = (int)pcVar19;
              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);
            }
            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);
            if (iVar20 == 0) break;
            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);
          }
          pPVar11 = ssh2_pkt_init(0x32);
          pcVar19 = ssh->username;
          piVar12[0x2e] = (int)pPVar11;
          ssh_pkt_addstring(pPVar11,pcVar19);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");
          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");
          len = CONCAT31(len._1_3_,1);
          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);
          ssh_pkt_addstring((Packet *)piVar12[0x2e],
                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));
          free_prompts((prompts_t *)piVar12[0xf]);
          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);
          logevent(ssh->frontend,"Sent new password");
LAB_0002e515:
          *piVar12 = 0x2999;
          goto LAB_0002d320;
        }
        pcVar19 = (char *)piVar12[0x12];
        piVar12[3] = 1;
        sVar8 = strlen(pcVar19);
        smemclr(pcVar19,sVar8);
        safefree((void *)piVar12[0x12]);
        iVar20 = piVar12[3];
        goto LAB_0002d2f8;
      }
LAB_0002dd1c:
      *piVar12 = 0x2917;
      goto LAB_0002d320;
    }
    if (iVar20 < 0x2918) {
      if (iVar20 == 0x28a4) {
        if (pktin == (Packet *)0x0) {
          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);
          ssh->send_ok = 0;
LAB_0002f51a:
          if (-1 < iVar20) {
            if (iVar20 == 0) {
              ppVar18 = (prompts_t *)piVar12[0xf];
              goto LAB_0002ea6c;
            }
            iVar33 = 0;
            pPVar11 = ssh2_pkt_init(0x3d);
            piVar12[0x2e] = (int)pPVar11;
            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);
            iVar20 = extraout_ECX;
            if (0 < piVar12[0x10]) {
              do {
                iVar20 = iVar33 * 4;
                iVar33 = iVar33 + 1;
                ssh_pkt_addstring((Packet *)piVar12[0x2e],
                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));
                iVar20 = extraout_ECX_00;
              } while (iVar33 < piVar12[0x10]);
            }
            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);
            free_prompts((prompts_t *)piVar12[0xf]);
            goto LAB_0002f35a;
          }
          ssh->send_ok = 1;
        }
        *piVar12 = 0x28a4;
      }
      else {
        if (iVar20 < 0x28a5) {
          if (iVar20 == 0x2807) {
            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;
            if (pktin->type == 0x3d) {
              ssh_pkt_getstring(pktin,&methods,&len);
              piVar12[0x35] = (int)methods;
              piVar12[0x34] = len;
              iVar20 = piVar12[0x39];
              if (iVar20 == 1) goto LAB_0002efad;
              goto LAB_0002f049;
            }
            logevent(ssh->frontend,"GSSAPI authentication - bad server response");
            piVar12[0x39] = 4;
            goto LAB_0002e970;
          }
          if (iVar20 != 0x284b) goto LAB_0002d8a4;
          if (pktin != (Packet *)0x0) {
            if (pktin->type == 0x3c) goto LAB_0002eda0;
            piVar12[3] = 1;
            piVar12[1] = 7;
            piVar12[0xc] = 1;
            methods = (char *)0x0;
            error = (char *)0x0;
            goto LAB_0002d3e0;
          }
          goto LAB_0002e166;
        }
        if (iVar20 != 0x28ca) {
          if (iVar20 != 0x28e8) goto LAB_0002d8a4;
          if (pktin == (Packet *)0x0) {
            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);
            ssh->send_ok = 0;
            goto LAB_0002dc60;
          }
          goto LAB_0002d68e;
        }
        if (pktin != (Packet *)0x0) {
          if (pktin->type != 0x3c) {
            piVar12[3] = 1;
            methods = (char *)0x0;
            error = (char *)0x0;
            goto LAB_0002d3e0;
          }
LAB_0002eda0:
          ssh_pkt_getstring(pktin,&name,&name_len);
          ssh_pkt_getstring(pktin,&inst,&inst_len);
          ssh_pkt_getstring(pktin,&lang,&len);
          ppVar18 = new_prompts(ssh->frontend);
          piVar12[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          uVar21 = ssh_pkt_getuint32(pktin);
          piVar12[0x10] = uVar21;
          if (0 < (int)uVar21) {
            iVar20 = 0;
            do {
              ssh_pkt_getstring(pktin,&methods,(int *)&error);
              iVar33 = pktin->savedpos;
              uVar22 = 0;
              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {
                uVar4 = pktin->body[iVar33];
                pktin->savedpos = iVar33 + 1;
                uVar22 = (uint)(uVar4 != '\0');
              }
              if (error == (char *)0x0) {
                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::
                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;
                error = (char *)0x20;
              }
              iVar20 = iVar20 + 1;
              pcVar19 = dupprintf("%.*s",error,methods);
              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);
            } while (iVar20 < piVar12[0x10]);
          }
          iVar20 = piVar12[0xf];
          if (name_len == 0) {
            pcVar19 = dupstr("SSH server authentication");
            *(char **)(iVar20 + 4) = pcVar19;
            ppVar18 = (prompts_t *)piVar12[0xf];
            ppVar18->name_reqd = 0;
          }
          else {
            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);
            *(char **)(iVar20 + 4) = pcVar19;
            ppVar18 = (prompts_t *)piVar12[0xf];
            ppVar18->name_reqd = 1;
          }
          if (piVar12[0x10] == 0 && name_len == 0) {
            if (inst_len != 0) {
              puVar26 = &DAT_0007148e;
              goto LAB_0002fa3b;
            }
            ppVar18->instr_reqd = 0;
          }
          else {
            puVar26 = &DAT_0007148e;
            if (inst_len == 0) {
              puVar26 = &DAT_0006f2ee;
            }
LAB_0002fa3b:
            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,
                                inst);
            ppVar18->instruction = pcVar19;
            ppVar18 = (prompts_t *)piVar12[0xf];
            ppVar18->instr_reqd = 1;
          }
          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);
          goto LAB_0002f51a;
        }
LAB_0002f35a:
        *piVar12 = 0x28ca;
      }
      goto LAB_0002d320;
    }
    if (iVar20 == 0x2a03) {
      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;
      if (pktin->type - 0x5bU < 2) {
        uVar21 = ssh_pkt_getuint32(pktin);
        psVar16 = ssh->mainchan;
        if (uVar21 == psVar16->localid) {
          if (pktin->type == 0x5c) {
            pcVar19 = ssh2_channel_open_failure_error_text(pktin);
            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);
            bomb_out(ssh,pcVar35);
            safefree(pcVar19);
            *piVar12 = 0;
            goto LAB_0002d320;
          }
          uVar21 = ssh_pkt_getuint32(pktin);
          psVar16->remoteid = uVar21;
          psVar16 = ssh->mainchan;
          psVar16->halfopen = 0;
          psVar16->type = 0;
          uVar21 = ssh_pkt_getuint32(pktin);
          (psVar16->v).v2.remwindow = uVar21;
          psVar16 = ssh->mainchan;
          uVar21 = ssh_pkt_getuint32(pktin);
          (psVar16->v).v2.remmaxpkt = uVar21;
          update_specials_menu(ssh->frontend);
          logevent(ssh->frontend,"Opened main channel");
          goto LAB_0002da71;
        }
        pcVar19 = "Server\'s response to main channel open cited wrong channel number";
      }
      else {
        pcVar19 = "Server sent strange packet %d in response to main channel open request";
      }
LAB_0002dba9:
      pcVar19 = dupprintf(pcVar19);
      bomb_out(ssh,pcVar19);
      *piVar12 = 0;
      goto LAB_0002d320;
    }
    if (iVar20 < 0x2a04) {
      if (iVar20 == 0x2956) {
        if (pktin == (Packet *)0x0) {
          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);
          ssh->send_ok = 0;
          goto LAB_0002e42a;
        }
LAB_0002e5f0:
        *piVar12 = 0x2956;
        goto LAB_0002d320;
      }
      if (iVar20 == 0x2999) {
        if (pktin != (Packet *)0x0) {
          iVar20 = pktin->type;
          pcVar19 = "Server rejected new password";
          goto joined_r0x0002e302;
        }
        goto LAB_0002e515;
      }
LAB_0002d8a4:
      *piVar12 = 0;
      goto LAB_0002d320;
    }
    if (iVar20 != 0x2a90) {
      if (iVar20 != 0x2abd) goto LAB_0002d8a4;
      if (pktin != (Packet *)0x0) {
        pcVar19 = "Strange packet received: type %d";
        goto LAB_0002dba9;
      }
      if (ssh->mainchan != (ssh_channel *)0x0) {
        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);
      }
      goto LAB_0002db95;
    }
    if (pktin != (Packet *)0x0) {
      if (pktin->type == 99) {
        logevent(ssh->frontend,"Started a shell/command");
        goto LAB_0002db48;
      }
      if (pktin->type == 100) {
        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))
        {
          logevent(ssh->frontend,"Primary command failed; attempting fallback");
          ssh->fallback_cmd = 1;
          goto LAB_0002feab;
        }
        pcVar19 = "Server refused to start a shell/command";
      }
      else {
        pcVar19 = "Unexpected response to shell/command request: packet type %d";
      }
      goto LAB_0002dba9;
    }
  }
  *piVar12 = 0x2a90;
LAB_0002d320:
  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)

{
  char cVar1;
  code *pcVar2;
  uint uVar3;
  size_t sVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int *piVar8;
  undefined1 *__dest;
  int *piVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined1 *puVar13;
  void *pvVar14;
  undefined *puVar15;
  char *pcVar16;
  undefined4 uVar17;
  int iVar18;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  uint *puVar19;
  undefined4 extraout_EDX;
  uint *puVar20;
  char *pcVar21;
  uint *puVar22;
  int in_GS_OFFSET;
  bool bVar23;
  undefined8 uVar24;
  int *local_64;
  char **local_60;
  int local_54;
  undefined4 local_48;
  undefined4 local_44;
  int local_3c;
  int local_38;
  int local_34;
  char *local_30;
  char *local_2c [2];
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x2d23b;
  piVar8 = *(int **)(param_1 + 0x1d0);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (piVar8 == (int *)0x0) {
    piVar8 = (int *)FUN_0001c990(1,0xe8);
    *(int **)(param_1 + 0x1d0) = piVar8;
    *piVar8 = 0;
LAB_0002d8d0:
    iVar7 = *(int *)(param_1 + 0xec);
    *(code **)(param_1 + 0x288) = FUN_0003beb0;
    *(code **)(param_1 + 0x338) = FUN_0003beb0;
    *(code **)(param_1 + 0x33c) = FUN_0003beb0;
    *(code **)(param_1 + 0x340) = FUN_0003beb0;
    *(code **)(param_1 + 0x344) = FUN_0003beb0;
    *(code **)(param_1 + 0x360) = FUN_0003beb0;
    *(code **)(param_1 + 0x364) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;
    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;
    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;
    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;
    *(code **)(param_1 + 1000) = FUN_0003beb0;
    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;
    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;
    piVar8[2] = 0;
    piVar8[0xe] = 0;
    piVar8[0xd] = 0;
    piVar8[0x1c] = 0;
    piVar8[0xb] = 0;
    if (iVar7 == 0) {
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);
      if (iVar7 == 0) {
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00033b40();
LAB_0002fadd:
        *piVar8 = 0x246f;
        goto LAB_0002d320;
      }
LAB_0002dbfb:
      if (piVar8[2] == 0) {
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00033b40();
LAB_0002dc2e:
        *piVar8 = 0x247a;
        goto LAB_0002d320;
      }
    }
    else {
LAB_0002d973:
      piVar8[0xd] = 1;
    }
LAB_0002d97a:
    FUN_0001c780(param_1 + 0x178);
    *(code **)(param_1 + 0x344) = FUN_0002bdb0;
    piVar8[0x14] = 0;
    if (piVar8[0xd] == 0) {
      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
      piVar8[0x2f] = iVar7;
      iVar7 = FUN_000631b0(iVar7);
      if (iVar7 == 0) {
        uVar11 = FUN_00063170(piVar8[0x2f]);
        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);
        iVar7 = FUN_00052e80(piVar8[0x2f]);
        if ((iVar7 == 9) || (iVar7 == 3)) {
          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);
          piVar8[0x14] = iVar5;
          if (iVar5 != 0) {
            piVar8[0x16] = (uint)(iVar7 == 3);
            if (iVar7 != 3) goto LAB_0002fb9e;
            goto LAB_0002fbb1;
          }
LAB_00030219:
          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);
          pcVar16 = local_2c[0];
          uVar11 = FUN_00063170(piVar8[0x2f]);
          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,
                                         pcVar16);
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
        }
        else if (iVar7 == 10) {
          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);
          piVar8[0x14] = iVar7;
          if (iVar7 == 0) goto LAB_00030219;
          piVar8[0x16] = 0;
LAB_0002fb9e:
          FUN_00026c00(param_1,"Key file contains public key only",uVar11);
LAB_0002fbb1:
          iVar7 = FUN_00051ea0(piVar8[0x2f],0);
          piVar8[0x17] = iVar7;
        }
        else {
          uVar11 = FUN_00052ed0(iVar7);
          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);
          uVar11 = FUN_00052ed0(iVar7);
          uVar17 = FUN_00063170(piVar8[0x2f]);
          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)
          ;
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
          piVar8[0x14] = 0;
        }
      }
      piVar8[0x1c] = 0;
      piVar8[0x21] = 0;
      piVar8[0x1f] = 0;
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);
      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");
        piVar8[0x1a] = 0x1000000;
        *(undefined1 *)(piVar8 + 0x1b) = 0xb;
        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);
        *(int *)(param_1 + 0x6d0) = iVar7;
        if (iVar7 != 0) {
LAB_0002eb58:
          *piVar8 = 0x24d9;
          goto LAB_0002d320;
        }
LAB_0002d78a:
        pcVar16 = local_2c[0];
        piVar8[0x1c] = (int)local_2c[0];
        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");
        }
        else {
          uVar12 = *(uint *)(local_2c[0] + 5);
          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                               uVar12 << 0x18);
          piVar8[0x21] = iVar7;
          if (iVar7 < 0) {
            pcVar16 = "Pageant response contained a negative key count %d";
          }
          else {
            puVar22 = (uint *)(pcVar16 + 9);
            iVar5 = piVar8[0x1e] + -9;
            puVar19 = puVar22;
            if (iVar7 == 0) {
LAB_00030479:
              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);
              if (piVar8[0x14] != 0) {
                uVar11 = extraout_ECX_00;
                if (0 < piVar8[0x21]) {
                  iVar7 = 0;
                  do {
                    uVar12 = *puVar22;
                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                    piVar8[0x25] = sVar4;
                    if ((sVar4 == piVar8[0x15]) &&
                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {
                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);
                      piVar8[0x20] = iVar7;
                      piVar8[0x1f] = (int)puVar22;
                      goto LAB_0002d7b9;
                    }
                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);
                    iVar7 = iVar7 + 1;
                    uVar12 = *puVar22;
                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);
                    uVar11 = extraout_ECX_01;
                  } while (iVar7 < piVar8[0x21]);
                }
                if (piVar8[0x1f] == 0) {
                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"
                               ,uVar11,uVar11);
                  piVar8[0x21] = 0;
                }
              }
              goto LAB_0002d7b9;
            }
            iVar6 = 0;
            puVar20 = puVar22;
            if (3 < iVar5) {
              while( true ) {
                uVar12 = *puVar20;
                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                if (iVar5 - 4U < uVar12) break;
                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);
                uVar3 = *puVar20;
                iVar5 = ((iVar5 - 4U) - uVar12) + -4;
                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |
                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);
                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);
                iVar18 = (int)uVar24;
                if ((iVar18 < 0) || (iVar5 < iVar18)) break;
                iVar5 = iVar5 - iVar18;
                iVar6 = iVar6 + 1;
                iVar7 = piVar8[0x21];
                if (iVar7 <= iVar6) goto LAB_00030479;
                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);
                if (iVar5 < 4) break;
              }
            }
            pcVar16 = "Pageant response was truncated";
          }
          FUN_00026c00(param_1,pcVar16);
          piVar8[0x21] = 0;
        }
      }
LAB_0002d7b9:
      piVar8[0x13] = 0;
      if (piVar8[0xd] == 0) {
LAB_0002d7cb:
        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));
        *(int *)(param_1 + 0x250) = iVar7;
        if (iVar7 == 0) {
          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
          piVar8[0xf] = (int)puVar10;
          *puVar10 = 1;
          uVar11 = FUN_0001caa0("SSH login name");
          puVar10[1] = uVar11;
          uVar11 = FUN_0001caa0("login as: ");
          FUN_0001ce70(piVar8[0xf],uVar11,1);
          iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002f3ea:
          if (iVar7 < 0) {
            *(undefined4 *)(param_1 + 0x100) = 1;
            goto LAB_0002e8c8;
          }
          if (iVar7 == 0) {
            FUN_0001c2f0(piVar8[0xf]);
            FUN_00034b00(0,1);
            *piVar8 = 0;
            goto LAB_0002d320;
          }
          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));
          *(undefined4 *)(param_1 + 0x250) = uVar11;
          FUN_0001c2f0(piVar8[0xf]);
        }
        else if (((byte)DAT_000a5b0c & 5) != 0) {
          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
        }
LAB_0002d7f9:
        piVar8[0x13] = 1;
        *(undefined4 *)(param_1 + 0x188) = 0;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00033b40();
        piVar8[1] = 0;
        piVar8[3] = 0;
        piVar8[0xd] = 0;
        piVar8[8] = 0;
        piVar8[0xc] = 0;
        piVar8[9] = 0;
        if (piVar8[0x1c] != 0) {
          if (piVar8[0x1f] == 0) {
            piVar8[0x20] = 0;
            piVar8[0x1d] = piVar8[0x1c] + 9;
          }
          else {
            piVar8[0x1d] = piVar8[0x1f];
          }
        }
LAB_0002d310:
        *piVar8 = 0x25a0;
        goto LAB_0002d320;
      }
    }
    else {
      piVar8[0x13] = 0;
    }
LAB_0002d9b1:
    *(undefined4 *)(param_1 + 0x344) = 0;
    if (piVar8[0x14] != 0) {
      FUN_0001d220(piVar8[0x18]);
      FUN_0001d220(piVar8[0x14]);
      FUN_0001d220(piVar8[0x19]);
    }
    if (piVar8[0x1c] != 0) {
      FUN_0001d220(piVar8[0x1c]);
    }
    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {
      FUN_000306b0(0);
    }
    uVar11 = FUN_000612a0(FUN_00026aa0);
    *(undefined4 *)(param_1 + 0x124) = uVar11;
    *(code **)(param_1 + 0x3e4) = FUN_000373f0;
    *(code **)(param_1 + 0x3b0) = FUN_00034300;
    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);
    if (iVar7 != 0) {
      *(undefined4 *)(param_1 + 0x128) = 0;
LAB_0002da71:
      *(code **)(param_1 + 0x3ec) = FUN_00037180;
      *(code **)(param_1 + 1000) = FUN_00037180;
      *(code **)(param_1 + 0x3f0) = FUN_00037780;
      *(code **)(param_1 + 0x3f4) = FUN_00037680;
      *(code **)(param_1 + 0x3dc) = FUN_00037580;
      *(code **)(param_1 + 0x3e0) = FUN_00035460;
      *(code **)(param_1 + 0x3f8) = FUN_00034d80;
      *(code **)(param_1 + 0x3d8) = FUN_00033b60;
      *(code **)(param_1 + 0x3fc) = FUN_000374f0;
      *(code **)(param_1 + 0x400) = FUN_000374f0;
      if (*(int *)(param_1 + 0xf4) != 0) {
        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));
      }
      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {
        iVar7 = FUN_0002ab60(0);
        piVar8[0x2e] = iVar7;
        FUN_00033b40();
      }
      FUN_00035e50();
      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {
        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);
        if (iVar7 != 0) {
          uVar11 = *(undefined4 *)(param_1 + 0x248);
          uVar17 = FUN_00018b50(uVar11,0x96);
          iVar7 = FUN_0006c310(uVar17,uVar11);
          *(int *)(param_1 + 0x18c) = iVar7;
          if (iVar7 == 0) {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)
            ;
          }
          else {
            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);
            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);
            *(int *)(param_1 + 400) = iVar7;
            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);
            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);
          }
        }
        iVar7 = FUN_0002cea0(param_1);
        if (iVar7 != 0) {
          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);
        }
        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);
        if (iVar7 == 0) {
          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);
        }
        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);
        if (*(int *)(param_1 + 0x174) == 0) {
          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);
          uVar11 = 0x14;
        }
        else {
LAB_0002feab:
          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);
          uVar11 = 0x15;
        }
        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);
        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {
          iVar7 = FUN_0002ab60(0);
          piVar8[0x2e] = iVar7;
        }
        else {
          iVar7 = FUN_0002ab60(0);
          piVar8[0x2e] = iVar7;
          FUN_00029e50();
        }
        FUN_00033b40();
LAB_0002f2ad:
        *piVar8 = 0x2a90;
        goto LAB_0002d320;
      }
      *(undefined4 *)(param_1 + 0x104) = 1;
      *(undefined4 *)(param_1 + 0x108) = 1;
LAB_0002db48:
      *(undefined4 *)(param_1 + 0x144) = 3;
      if (*(int *)(param_1 + 0x148) != 0) {
        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));
      }
      if (*(int *)(param_1 + 0x14c) != 0) {
        FUN_0003a8b0(param_1,0xc);
      }
      if (*(int *)(param_1 + 0x14) != 0) {
        FUN_0001a2d0(*(int *)(param_1 + 0x14));
      }
      if (*(int *)(param_1 + 0x128) != 0) {
        *(undefined4 *)(param_1 + 0x100) = 1;
      }
LAB_0002db95:
      *piVar8 = 0x2abd;
      goto LAB_0002d320;
    }
    piVar9 = (int *)FUN_0001c990(1,0x5c);
    *(int **)(param_1 + 0x128) = piVar9;
    *piVar9 = param_1;
    FUN_0002c3f0();
    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);
    if (*pcVar16 == '\0') {
      iVar7 = FUN_0002aae0();
      piVar8[0x2e] = iVar7;
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");
      FUN_00033b40();
      *(undefined4 *)(param_1 + 300) = 0;
    }
    else {
      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);
      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);
      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");
      *(undefined4 *)(param_1 + 300) = 1;
    }
LAB_0002e0c6:
    *piVar8 = 0x2a03;
    goto LAB_0002d320;
  }
  iVar7 = *piVar8;
  if (iVar7 == 0x27b6) {
    if (param_4 == (int *)0x0) {
LAB_0002d664:
      *piVar8 = 0x27b6;
      goto LAB_0002d320;
    }
    if (param_4[2] == 0x3c) {
      FUN_000273d0();
      piVar8[0x34] = local_34;
      sVar4 = piVar8[0x32];
      piVar8[0x35] = (int)local_30;
      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&
         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {
        iVar7 = (**(code **)(piVar8[0x30] + 0xc))
                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);
        piVar8[0x39] = iVar7;
        if (iVar7 == 0) {
          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);
          piVar8[0x39] = iVar7;
          if (iVar7 == 0) {
            piVar8[0x34] = 0;
            piVar8[0x35] = 0;
            piVar8[0x36] = 0;
            piVar8[0x37] = 0;
LAB_0002efad:
            local_64 = piVar8 + 0x31;
            pcVar2 = *(code **)(piVar8[0x30] + 0x14);
            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);
            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36
                              );
            piVar8[0x39] = uVar12;
            if (uVar12 < 2) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",
                           extraout_ECX,extraout_ECX);
              if (piVar8[0x36] != 0) {
                puVar10 = (undefined4 *)FUN_00029d20();
                piVar8[0x2e] = (int)puVar10;
                local_24 = 0;
                FUN_00029c40();
                puVar10[6] = *puVar10;
                FUN_00029dc0();
                FUN_00033b40();
                (**(code **)(piVar8[0x30] + 0x18))
                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);
              }
              iVar7 = piVar8[0x39];
              if (iVar7 == 1) {
LAB_0002fcf7:
                *piVar8 = 0x2807;
                goto LAB_0002d320;
              }
            }
            else {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                           "GSSAPI authentication initialisation failed",uVar12,uVar12);
              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);
              if (iVar7 == 0) {
                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);
                FUN_0001d220(piVar8[0x33]);
                iVar7 = piVar8[0x39];
              }
              else {
                iVar7 = piVar8[0x39];
              }
            }
LAB_0002f049:
            if (iVar7 == 0) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"
                          );
              piVar9 = (int *)FUN_00029d20();
              iVar7 = *piVar9;
              piVar8[0x2e] = (int)piVar9;
              local_24 = 0;
              FUN_00029c40();
              piVar9[6] = *piVar9;
              FUN_00029dc0();
              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);
              FUN_00029c40();
              FUN_00029e50();
              FUN_00029e50();
              FUN_00029e50();
              iVar5 = ((int *)piVar8[0x2e])[4];
              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;
              piVar8[0x33] = iVar5 + iVar7;
              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);
              puVar10 = (undefined4 *)FUN_00029d20();
              piVar8[0x2e] = (int)puVar10;
              local_24 = 0;
              FUN_00029c40();
              puVar10[6] = *puVar10;
              FUN_00029dc0();
              FUN_00033b40();
              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);
              piVar8[3] = 0;
              iVar7 = piVar8[0x30];
            }
            else {
LAB_0002e970:
              iVar7 = piVar8[0x30];
            }
            local_60 = (char **)(piVar8 + 0x38);
            local_64 = piVar8 + 0x31;
            (**(code **)(iVar7 + 0x10))(iVar7,local_60);
            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);
          }
          else {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);
            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);
          }
        }
        else if (iVar7 == 3) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                       "GSSAPI import name failed - Bad service name",3,3);
        }
        else {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);
        }
      }
      else {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                     "GSSAPI authentication - wrong response from server");
      }
    }
    else {
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");
    }
    iVar7 = piVar8[3];
LAB_0002d2f8:
    local_30 = (char *)0x0;
    local_2c[0] = (char *)0x0;
    if (iVar7 == 0) goto LAB_0002d310;
LAB_0002d3e0:
    iVar7 = param_1 + 0x178;
    iVar5 = FUN_0001c7f0(iVar7);
    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {
      pcVar16 = (char *)FUN_0001c990(iVar5,1);
      FUN_0001c8e0(iVar7,pcVar16,iVar5);
      puVar15 = PTR_stderr_000a4fa0;
      if (((byte)DAT_000a5b0c & 2) == 0) {
        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);
      }
      else {
        pcVar21 = pcVar16;
        if (0 < iVar5) {
          do {
            cVar1 = *pcVar21;
            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {
              fputc((int)cVar1,*(FILE **)puVar15);
            }
            pcVar21 = pcVar21 + 1;
          } while (pcVar21 != pcVar16 + iVar5);
        }
      }
      FUN_0001d220(pcVar16);
    }
    FUN_0001c7a0(iVar7);
    if (param_4[2] == 0x34) {
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");
      piVar8[0xe] = 1;
      piVar8[0xd] = 1;
      goto LAB_0002d9b1;
    }
    if (param_4[2] == 0x33) {
      piVar8[3] = 0;
      FUN_000273d0();
      iVar7 = param_4[6];
      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||
         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {
        iVar7 = piVar8[1];
        if (iVar7 != 0) {
          if (iVar7 - 2U < 2) {
            if (iVar7 == 2) {
              FUN_00029500();
            }
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");
          }
          else if (iVar7 == 1) {
            FUN_00029500();
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "Server refused public-key signature despite accepting key!");
          }
          else if (iVar7 == 7) {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "Server refused keyboard-interactive authentication");
          }
          else if (iVar7 != 5) {
            if (iVar7 == 6) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                           "Keyboard-interactive authentication failed",6,6);
              FUN_00029500();
            }
            else {
              if (iVar7 != 4) {
                    /* WARNING: Subroutine does not return */
                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");
              }
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");
              FUN_00029500();
              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);
              if (iVar7 != 0) {
                uVar11 = *(undefined4 *)(param_1 + 0x248);
                piVar8[0xd] = 0;
                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))
                goto LAB_0002d7cb;
                goto LAB_0002d7f9;
              }
            }
          }
        }
      }
      else {
        FUN_00029500();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");
      }
      iVar7 = FUN_0002bed0();
      piVar8[5] = iVar7;
      iVar7 = FUN_0002bed0();
      piVar8[6] = iVar7;
      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);
      if (uVar12 != 0) {
        iVar7 = FUN_0002bed0();
        uVar12 = (uint)(iVar7 != 0);
      }
      piVar8[7] = uVar12;
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);
      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {
        piVar8[10] = 0;
      }
      else {
        iVar7 = *(int *)(param_1 + 0x6a8);
        if (iVar7 == 0) {
          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));
          *(int *)(param_1 + 0x6a8) = iVar7;
        }
        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));
      }
    }
    else {
      if (piVar8[1] != 5) {
        pcVar16 = "Strange packet received during authentication: type %d";
        goto LAB_0002dba9;
      }
      piVar8[3] = 0;
    }
    *(undefined4 *)(param_1 + 0x188) = 0;
    if (piVar8[5] != 0) {
      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {
        *(undefined4 *)(param_1 + 0x188) = 1;
        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);
        uVar12 = *(uint *)piVar8[0x1d];
        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        iVar5 = piVar8[0x1d];
        piVar8[0x25] = iVar6;
        iVar7 = iVar5 + 4;
        piVar8[0x22] = iVar7;
        piVar8[0x1d] = iVar7 + iVar6;
        uVar12 = *(uint *)(iVar5 + 4);
        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        piVar8[0x26] = iVar7;
        piVar8[0x23] = piVar8[0x22] + 4;
        uVar12 = *(uint *)piVar8[0x1d];
        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        piVar8[0x27] = iVar7;
        piVar8[0x24] = piVar8[0x1d] + 4;
        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        FUN_00033b40();
        piVar8[1] = 3;
        goto LAB_0002e2e0;
      }
      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {
        *(undefined4 *)(param_1 + 0x188) = 1;
        piVar8[8] = 1;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        FUN_00029e50();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        FUN_00033b40();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");
LAB_0002f4f1:
        *piVar8 = 0x26df;
        goto LAB_0002d320;
      }
    }
    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {
      piVar8[1] = 5;
      piVar8[0xb] = 1;
      iVar7 = DAT_0007d228;
      piVar8[3] = 1;
      local_64 = (int *)0x0;
      *(undefined4 *)(param_1 + 0x188) = 3;
      piVar8[0x30] = 0;
      if (iVar7 < 1) {
LAB_000301fa:
                    /* WARNING: Subroutine does not return */
        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");
      }
      do {
        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);
        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];
        if (0 < iVar5) {
          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);
          if (iVar6 == *piVar9) {
LAB_0002ebb0:
            piVar8[0x30] = (int)piVar9;
            goto LAB_0002d550;
          }
          iVar18 = 0;
          while( true ) {
            piVar9 = piVar9 + 0x15;
            iVar18 = iVar18 + 1;
            if (iVar18 == iVar5) break;
            if (*piVar9 == iVar6) goto LAB_0002ebb0;
          }
        }
        local_64 = (int *)((int)local_64 + 1);
      } while ((int *)iVar7 != local_64);
      piVar9 = (int *)piVar8[0x30];
LAB_0002d550:
      if (piVar9 == (int *)0x0) goto LAB_000301fa;
      if (piVar9[1] != 0) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);
      }
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");
      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);
      local_24 = 0x1000000;
      FUN_00029c40();
      FUN_00029e10();
      FUN_00029c40();
      FUN_00029c40();
      FUN_00029c40();
      FUN_00033b40();
      goto LAB_0002d664;
    }
    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {
      piVar8[1] = 6;
      *(undefined4 *)(param_1 + 0x188) = 4;
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00033b40();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"
                  );
LAB_0002e166:
      *piVar8 = 0x284b;
      goto LAB_0002d320;
    }
    if (piVar8[6] == 0) {
      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",
                            local_2c[0],local_30);
      FUN_00034b00(0xe,0);
      FUN_0001d220(uVar11);
      *piVar8 = 0;
      goto LAB_0002d320;
    }
    *(undefined4 *)(param_1 + 0x188) = 2;
    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
    piVar8[0xf] = (int)puVar10;
    *puVar10 = 1;
    uVar11 = FUN_0001caa0("SSH password");
    puVar10[1] = uVar11;
    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),
                          *(undefined4 *)(param_1 + 0xf8));
    FUN_0001ce70(piVar8[0xf],uVar11,0);
    iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002dc60:
    if (iVar7 < 0) {
      *(undefined4 *)(param_1 + 0x100) = 1;
LAB_0002d68e:
      *piVar8 = 0x28e8;
      goto LAB_0002d320;
    }
    iVar5 = piVar8[0xf];
    if (iVar7 != 0) {
      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));
      piVar8[0x12] = iVar7;
      FUN_0001c2f0(piVar8[0xf]);
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029c40();
      FUN_00029e50();
      FUN_00038450();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");
      piVar8[1] = 4;
      goto LAB_0002dd1c;
    }
LAB_0002ea6c:
    FUN_0001c2f0(iVar5);
LAB_0002ea71:
    FUN_00034b00(0xd,1);
    *piVar8 = 0;
    goto LAB_0002d320;
  }
  if (iVar7 < 0x27b7) {
    if (iVar7 == 0x2561) {
      if (param_4 == (int *)0x0) {
        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
        *(undefined4 *)(param_1 + 0x100) = 0;
        goto LAB_0002f3ea;
      }
LAB_0002e8c8:
      *piVar8 = 0x2561;
      goto LAB_0002d320;
    }
    if (iVar7 < 0x2562) {
      if (iVar7 == 0x246f) {
        if (param_4 == (int *)0x0) goto LAB_0002fadd;
        if (param_4[2] != 6) goto LAB_0002dbfb;
        piVar8[2] = 1;
        goto LAB_0002d97a;
      }
      if (iVar7 < 0x2470) {
        if (iVar7 == 0) goto LAB_0002d8d0;
        goto LAB_0002d8a4;
      }
      if (iVar7 == 0x247a) {
        if (param_4 != (int *)0x0) {
          if (param_4[2] != 6) {
            pcVar16 = "Server refused service request";
            goto LAB_0002dba9;
          }
          goto LAB_0002d973;
        }
        goto LAB_0002dc2e;
      }
      if (iVar7 != 0x24d9) goto LAB_0002d8a4;
      if (param_4 != (int *)0x0) goto LAB_0002dba0;
      if (0 < param_3) goto LAB_0002eb58;
      local_2c[0] = *(char **)(param_1 + 0x254);
      piVar8[0x1e] = *(int *)(param_1 + 600);
      goto LAB_0002d78a;
    }
    if (iVar7 == 0x2696) {
      if (param_4 != (int *)0x0) {
LAB_0002dba0:
        pcVar16 = "Unexpected data from server while waiting for agent response";
        goto LAB_0002dba9;
      }
      if (0 < param_3) {
LAB_0002f388:
        *piVar8 = 0x2696;
        goto LAB_0002d320;
      }
      local_2c[0] = *(char **)(param_1 + 0x254);
      piVar8[0x29] = *(int *)(param_1 + 600);
LAB_0002e806:
      piVar8[0x2d] = (int)local_2c[0];
      FUN_0001d220(piVar8[0x2c]);
      iVar7 = piVar8[0x2d];
      if (iVar7 != 0) {
        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||
           (uVar12 = *(uint *)(iVar7 + 5),
           piVar8[0x29] - 9U <
           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {
          pcVar16 = "Pageant failed to answer challenge";
          goto LAB_0002dba9;
        }
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");
        uVar12 = *(uint *)(piVar8[0x2d] + 5);
        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,
                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                     uVar12 << 0x18);
        FUN_00033b40();
        piVar8[1] = 1;
      }
LAB_0002d6ed:
      if (piVar8[0x1f] == 0) {
        iVar5 = piVar8[0x20];
        iVar7 = piVar8[3];
        piVar8[0x20] = iVar5 + 1;
        if (piVar8[0x21] <= iVar5 + 1) {
          piVar8[9] = 1;
        }
      }
      else {
        piVar8[9] = 1;
        iVar7 = piVar8[3];
        piVar8[8] = 1;
      }
      goto LAB_0002d2f8;
    }
    if (0x2696 < iVar7) {
      if (iVar7 != 0x26df) {
        if (iVar7 == 0x2703) {
          if (param_4 == (int *)0x0) {
            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
            *(undefined4 *)(param_1 + 0x100) = 0;
            goto LAB_0002dd4a;
          }
LAB_0002d72e:
          *piVar8 = 0x2703;
          goto LAB_0002d320;
        }
        goto LAB_0002d8a4;
      }
      if (param_4 != (int *)0x0) {
        if (param_4[2] == 0x3c) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");
          if (((byte)DAT_000a5b0c & 1) != 0) {
            FUN_00029500();
            strlen((char *)piVar8[0x19]);
            FUN_00029500();
            FUN_00029500();
          }
          while (piVar8[0x17] != 0) {
            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
            piVar8[0xf] = (int)puVar10;
            *puVar10 = 0;
            uVar11 = FUN_0001caa0("SSH key passphrase");
            puVar10[1] = uVar11;
            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);
            FUN_0001ce70(piVar8[0xf],uVar11,0);
            iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002dd4a:
            if (iVar7 < 0) {
              *(undefined4 *)(param_1 + 0x100) = 1;
              goto LAB_0002d72e;
            }
            iVar5 = piVar8[0xf];
            if (iVar7 == 0) goto LAB_0002ea6c;
            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));
            FUN_0001c2f0(piVar8[0xf]);
            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
            piVar8[0x2f] = iVar7;
            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);
            if (pcVar16 == (char *)0x0) {
              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;
              goto LAB_0002ddec;
            }
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(pcVar16);
            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;
            FUN_00029500();
          }
          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
          piVar8[0x2f] = iVar7;
          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);
          if (local_64 != (int *)PTR_DAT_000a4fac) {
LAB_0002ddec:
            local_60 = local_2c;
            if (local_64 != (int *)0x0) {
              iVar7 = FUN_00029d20();
              piVar8[0x2e] = iVar7;
              FUN_00029e50();
              FUN_00029e50();
              FUN_00029e50();
              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);
              FUN_00029c40();
              FUN_00029e50();
              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);
              puVar10 = (undefined4 *)piVar8[0x2e];
              local_24 = 0;
              FUN_00029c40();
              puVar10[6] = *puVar10;
              FUN_00029dc0();
              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);
              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {
                iVar7 = iVar7 + -4;
              }
              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);
              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
                local_54 = 4;
                *puVar13 = *(undefined1 *)(param_1 + 0xe7);
                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);
                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);
                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);
                __dest = puVar13 + 4;
              }
              else {
                local_54 = 0;
                __dest = puVar13;
              }
              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));
              local_54 = local_54 + *(int *)(param_1 + 0xe4);
              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),
                     *(int *)piVar8[0x2e] - 5);
              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {
                    /* WARNING: Subroutine does not return */
                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");
              }
              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);
              FUN_0002bf40(local_30,uVar17,local_2c[0]);
              FUN_0001d220(uVar11);
              FUN_0001d220(uVar17);
              FUN_0001d220(puVar13);
              FUN_00033b40();
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");
              piVar8[1] = 1;
              (**(code **)(*local_64 + 4))(local_64[1]);
              FUN_0001d220(local_64[2]);
              FUN_0001d220(local_64);
              iVar7 = piVar8[3];
              goto LAB_0002d2f8;
            }
          }
LAB_0002f5cf:
          FUN_00029500();
          strlen(local_2c[0]);
          FUN_00029500();
          FUN_00029500();
          iVar7 = piVar8[3];
          goto LAB_0002d2f8;
        }
        piVar8[3] = 1;
        piVar8[1] = 2;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
      goto LAB_0002f4f1;
    }
    if (iVar7 == 0x25a0) {
      if (param_4 != (int *)0x0) goto LAB_0002d3e0;
      goto LAB_0002d310;
    }
    if (iVar7 != 0x2650) goto LAB_0002d8a4;
    if (param_4 != (int *)0x0) {
      if (param_4[2] == 0x3c) {
        if (((byte)DAT_000a5b0c & 1) != 0) {
          FUN_00029500();
          FUN_00029500();
          FUN_00029500();
        }
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);
        FUN_00029c40();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);
        piVar8[0x28] = iVar7;
        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
          iVar7 = iVar7 + 4;
        }
        else {
          piVar8[0x28] = iVar7 + -4;
        }
        iVar7 = iVar7 + 5 + piVar8[0x25];
        piVar8[0x2a] = iVar7 + 4;
        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);
        piVar8[0x2c] = (int)puVar13;
        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);
        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);
        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);
        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];
        piVar8[0x2b] = piVar8[0x2c] + 5;
        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;
        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);
        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);
        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);
        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];
        iVar7 = piVar8[0x2b];
        piVar8[0x2b] = iVar7 + 4;
        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);
        iVar7 = piVar8[0x2b];
        piVar8[0x2b] = piVar8[0x25] + iVar7;
        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);
        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);
        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);
        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];
        iVar7 = piVar8[0x2b];
        pvVar14 = (void *)(iVar7 + 4);
        piVar8[0x2b] = (int)pvVar14;
        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);
          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);
          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);
          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);
          pvVar14 = (void *)(piVar8[0x2b] + 4);
          piVar8[0x2b] = (int)pvVar14;
        }
        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));
        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);
        iVar7 = *(int *)piVar8[0x2e];
        iVar5 = ((int *)piVar8[0x2e])[4];
        piVar8[0x2b] = (int)pvVar14;
        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);
        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);
        piVar8[0x2b] = (int)puVar13;
        *puVar13 = 0;
        *(undefined1 *)(piVar8[0x2b] + 1) = 0;
        *(undefined1 *)(piVar8[0x2b] + 2) = 0;
        *(undefined1 *)(piVar8[0x2b] + 3) = 0;
        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,
                             param_1);
        *(int *)(param_1 + 0x6d0) = iVar7;
        if (iVar7 != 0) goto LAB_0002f388;
        goto LAB_0002e806;
      }
      piVar8[3] = 1;
      goto LAB_0002d6ed;
    }
LAB_0002e2e0:
    *piVar8 = 0x2650;
    goto LAB_0002d320;
  }
  if (iVar7 == 0x2917) {
    if (param_4 != (int *)0x0) {
      iVar7 = param_4[2];
      pcVar16 = "Server requested password change";
joined_r0x0002e302:
      if (iVar7 == 0x3c) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);
        strlen(pcVar16);
        FUN_00029500();
        FUN_00029500();
        FUN_000273d0();
        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
        piVar8[0xf] = (int)puVar10;
        *puVar10 = 1;
        uVar11 = FUN_0001caa0("New SSH password");
        puVar10[1] = uVar11;
        iVar7 = piVar8[0xf];
        pcVar16 = local_30;
        if (local_30 == (char *)0x0) {
          pcVar16 = "";
        }
        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);
        *(undefined4 *)(iVar7 + 0xc) = uVar11;
        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;
        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        uVar11 = FUN_0001caa0("Enter new password: ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        uVar11 = FUN_0001caa0("Confirm new password: ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        while( true ) {
          iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002e42a:
          if (iVar7 < 0) {
            *(undefined4 *)(param_1 + 0x100) = 1;
            goto LAB_0002e5f0;
          }
          if (iVar7 == 0) {
            FUN_0001c2f0(piVar8[0xf]);
            pcVar16 = (char *)piVar8[0x12];
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(piVar8[0x12]);
            goto LAB_0002ea71;
          }
          piVar9 = *(int **)(piVar8[0xf] + 0x18);
          if (**(char **)(*piVar9 + 8) != '\0') {
            pcVar16 = (char *)piVar8[0x12];
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(piVar8[0x12]);
            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));
            piVar8[0x12] = iVar7;
            piVar9 = *(int **)(piVar8[0xf] + 0x18);
          }
          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));
          if (iVar7 == 0) break;
          FUN_00029500();
        }
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        FUN_00029e50();
        FUN_00029e50();
        FUN_0001c2f0(piVar8[0xf]);
        FUN_00038450();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");
LAB_0002e515:
        *piVar8 = 0x2999;
        goto LAB_0002d320;
      }
      pcVar16 = (char *)piVar8[0x12];
      piVar8[3] = 1;
      sVar4 = strlen(pcVar16);
      FUN_0001d300(pcVar16,sVar4);
      FUN_0001d220(piVar8[0x12]);
      iVar7 = piVar8[3];
      goto LAB_0002d2f8;
    }
LAB_0002dd1c:
    *piVar8 = 0x2917;
    goto LAB_0002d320;
  }
  if (0x2917 < iVar7) {
    if (iVar7 == 0x2a03) {
      if (param_4 == (int *)0x0) goto LAB_0002e0c6;
      if (param_4[2] - 0x5bU < 2) {
        iVar5 = FUN_00026ae0();
        iVar7 = *(int *)(param_1 + 0x128);
        if (iVar5 == *(int *)(iVar7 + 8)) {
          if (param_4[2] == 0x5c) {
            uVar11 = FUN_000283a0();
            FUN_0001d000("Server refused to open main channel: %s",uVar11);
            FUN_00027d60();
            FUN_0001d220(uVar11);
            *piVar8 = 0;
            goto LAB_0002d320;
          }
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 4) = uVar11;
          iVar7 = *(int *)(param_1 + 0x128);
          *(undefined4 *)(iVar7 + 0x10) = 0;
          *(undefined4 *)(iVar7 + 0xc) = 0;
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 0x2c) = uVar11;
          iVar7 = *(int *)(param_1 + 0x128);
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 0x30) = uVar11;
          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");
          goto LAB_0002da71;
        }
        pcVar16 = "Server\'s response to main channel open cited wrong channel number";
      }
      else {
        pcVar16 = "Server sent strange packet %d in response to main channel open request";
      }
    }
    else {
      if (iVar7 < 0x2a04) {
        if (iVar7 == 0x2956) {
          if (param_4 == (int *)0x0) {
            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
            *(undefined4 *)(param_1 + 0x100) = 0;
            goto LAB_0002e42a;
          }
LAB_0002e5f0:
          *piVar8 = 0x2956;
          goto LAB_0002d320;
        }
        if (iVar7 == 0x2999) {
          if (param_4 != (int *)0x0) {
            iVar7 = param_4[2];
            pcVar16 = "Server rejected new password";
            goto joined_r0x0002e302;
          }
          goto LAB_0002e515;
        }
LAB_0002d8a4:
        *piVar8 = 0;
        goto LAB_0002d320;
      }
      if (iVar7 != 0x2a90) {
        if (iVar7 != 0x2abd) goto LAB_0002d8a4;
        if (param_4 != (int *)0x0) {
          pcVar16 = "Strange packet received: type %d";
          goto LAB_0002dba9;
        }
        if (*(int *)(param_1 + 0x128) != 0) {
          FUN_00035a60();
        }
        goto LAB_0002db95;
      }
      if (param_4 == (int *)0x0) goto LAB_0002f2ad;
      if (param_4[2] == 99) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");
        goto LAB_0002db48;
      }
      if (param_4[2] == 100) {
        if ((*(int *)(param_1 + 0x174) == 0) &&
           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')
           ) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                       "Primary command failed; attempting fallback");
          *(undefined4 *)(param_1 + 0x174) = 1;
          goto LAB_0002feab;
        }
        pcVar16 = "Server refused to start a shell/command";
      }
      else {
        pcVar16 = "Unexpected response to shell/command request: packet type %d";
      }
    }
LAB_0002dba9:
    FUN_0001d000(pcVar16);
    FUN_00027d60();
    *piVar8 = 0;
    goto LAB_0002d320;
  }
  if (iVar7 == 0x28a4) {
    if (param_4 == (int *)0x0) {
      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
      *(undefined4 *)(param_1 + 0x100) = 0;
LAB_0002f51a:
      if (-1 < iVar7) {
        if (iVar7 == 0) {
          iVar5 = piVar8[0xf];
          goto LAB_0002ea6c;
        }
        iVar5 = 0;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e10();
        if (0 < piVar8[0x10]) {
          do {
            iVar5 = iVar5 + 1;
            FUN_00029e50();
          } while (iVar5 < piVar8[0x10]);
        }
        FUN_00038450();
        FUN_0001c2f0(piVar8[0xf]);
        goto LAB_0002f35a;
      }
      *(undefined4 *)(param_1 + 0x100) = 1;
    }
    *piVar8 = 0x28a4;
  }
  else {
    if (iVar7 < 0x28a5) {
      if (iVar7 == 0x2807) {
        if (param_4 == (int *)0x0) goto LAB_0002fcf7;
        if (param_4[2] == 0x3d) {
          FUN_000273d0();
          piVar8[0x35] = (int)local_30;
          piVar8[0x34] = local_34;
          iVar7 = piVar8[0x39];
          if (iVar7 == 1) goto LAB_0002efad;
          goto LAB_0002f049;
        }
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")
        ;
        piVar8[0x39] = 4;
        goto LAB_0002e970;
      }
      if (iVar7 != 0x284b) goto LAB_0002d8a4;
      if (param_4 != (int *)0x0) {
        if (param_4[2] == 0x3c) goto LAB_0002eda0;
        piVar8[3] = 1;
        piVar8[1] = 7;
        piVar8[0xc] = 1;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
      goto LAB_0002e166;
    }
    if (iVar7 != 0x28ca) {
      if (iVar7 != 0x28e8) goto LAB_0002d8a4;
      if (param_4 == (int *)0x0) {
        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
        *(undefined4 *)(param_1 + 0x100) = 0;
        goto LAB_0002dc60;
      }
      goto LAB_0002d68e;
    }
    if (param_4 != (int *)0x0) {
      if (param_4[2] != 0x3c) {
        piVar8[3] = 1;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
LAB_0002eda0:
      FUN_000273d0();
      FUN_000273d0();
      FUN_000273d0();
      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
      piVar8[0xf] = (int)puVar10;
      *puVar10 = 1;
      iVar7 = FUN_00026ae0();
      piVar8[0x10] = iVar7;
      if (0 < iVar7) {
        iVar7 = 0;
        do {
          FUN_000273d0();
          iVar5 = param_4[6];
          bVar23 = false;
          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {
            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';
            param_4[6] = iVar5 + 1;
          }
          if (local_2c[0] == (char *)0x0) {
            local_30 = s_<server_failed_to_send_prompt>__000a5120;
            local_2c[0] = (char *)0x20;
          }
          iVar7 = iVar7 + 1;
          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);
          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);
        } while (iVar7 < piVar8[0x10]);
      }
      iVar7 = piVar8[0xf];
      if (local_3c == 0) {
        uVar11 = FUN_0001caa0("SSH server authentication");
        *(undefined4 *)(iVar7 + 4) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 8) = 0;
      }
      else {
        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);
        *(undefined4 *)(iVar7 + 4) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 8) = 1;
      }
      if (piVar8[0x10] == 0 && local_3c == 0) {
        if (local_38 != 0) {
          puVar15 = &DAT_0007148e;
          goto LAB_0002fa3b;
        }
        *(undefined4 *)(iVar7 + 0x10) = 0;
      }
      else {
        puVar15 = &DAT_0007148e;
        if (local_38 == 0) {
          puVar15 = &DAT_0006f2ee;
        }
LAB_0002fa3b:
        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,
                              local_44);
        *(undefined4 *)(iVar7 + 0xc) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 0x10) = 1;
      }
      iVar7 = FUN_000675f0(iVar7,0,0);
      goto LAB_0002f51a;
    }
LAB_0002f35a:
    *piVar8 = 0x28ca;
  }
LAB_0002d320:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006dad0();
}


PUSH EBP
PUSH EDI
MOV EDI,EAX
PUSH ESI
PUSH EBX
CALL 0x00015fa0
ADD EBX,0x77b35
SUB ESP,0x5c
MOV ESI,dword ptr [EDI + 0x1d0]
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
MOV EBP,dword ptr [ESP + 0x70]
TEST ESI,ESI
JZ 0x0002d8b0
MOV EAX,dword ptr [ESI]
CMP EAX,0x27b6
JZ 0x0002e780
JLE 0x0002d6a0
CMP EAX,0x2917
JZ 0x0002e2f0
JLE 0x0002d380
CMP EAX,0x2a03
JZ 0x0002e6c8
JG 0x0002d340
CMP EAX,0x2956
JZ 0x0002e5e8
CMP EAX,0x2999
JNZ 0x0002d8a4
TEST EBP,EBP
JZ 0x0002e515
CMP dword ptr [EBP + 0x8],0x3c
LEA EDX,[EBX + 0xfffcc53f]
JZ 0x0002e308
MOV EDX,dword ptr [ESI + 0x48]
SUB ESP,0xc
MOV dword ptr [ESI + 0xc],0x1
PUSH EDX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x00014440
POP ECX
POP EDX
PUSH EAX
MOV EDX,dword ptr [ESP + 0x14]
PUSH EDX
CALL 0x0001d300
POP ECX
PUSH dword ptr [ESI + 0x48]
CALL 0x0001d220
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x10
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x40],0x0
TEST EAX,EAX
JNZ 0x0002d3e0
MOV dword ptr [ESI],0x25a0
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x4c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x0003046c
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EAX,0x2a90
JZ 0x0002e600
CMP EAX,0x2abd
JNZ 0x0002d8a4
TEST EBP,EBP
JNZ 0x0002dbd0
MOV EAX,dword ptr [EDI + 0x128]
TEST EAX,EAX
JZ 0x0002db95
CALL 0x00035a60
JMP 0x0002db95
CMP EAX,0x28a4
JZ 0x0002e910
JG 0x0002d670
CMP EAX,0x2807
JZ 0x0002e928
CMP EAX,0x284b
JNZ 0x0002d8a4
TEST EBP,EBP
JZ 0x0002e166
CMP dword ptr [EBP + 0x8],0x3c
JZ 0x0002eda0
MOV dword ptr [ESI + 0xc],0x1
MOV dword ptr [ESI + 0x4],0x7
MOV dword ptr [ESI + 0x30],0x1
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x40],0x0
NOP
LEA EAX,[EDI + 0x178]
SUB ESP,0xc
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
CALL 0x0001c7f0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002d409
LEA EDX,[EBX + 0xd9c]
TEST byte ptr [EDX],0x5
JNZ 0x0002e9b0
SUB ESP,0xc
PUSH dword ptr [ESP + 0x14]
CALL 0x0001c7a0
MOV EAX,dword ptr [EBP + 0x8]
ADD ESP,0x10
CMP EAX,0x34
JZ 0x0002e5b8
CMP EAX,0x33
JZ 0x0002ebc0
CMP dword ptr [ESI + 0x4],0x5
JNZ 0x0002e9a0
MOV dword ptr [ESI + 0xc],0x0
MOV dword ptr [EDI + 0x188],0x0
MOV EAX,dword ptr [ESI + 0x14]
TEST EAX,EAX
JZ 0x0002d480
MOV EAX,dword ptr [ESI + 0x24]
TEST EAX,EAX
JNZ 0x0002d464
MOV EBP,dword ptr [ESI + 0x84]
TEST EBP,EBP
JNZ 0x0002e171
MOV EAX,dword ptr [ESI + 0x50]
TEST EAX,EAX
JZ 0x0002d480
MOV EAX,dword ptr [ESI + 0x58]
TEST EAX,EAX
JZ 0x0002d480
MOV EAX,dword ptr [ESI + 0x20]
TEST EAX,EAX
JZ 0x0002f422
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x28]
TEST EAX,EAX
JZ 0x0002e520
MOV EBP,dword ptr [ESI + 0x2c]
TEST EBP,EBP
JNZ 0x0002e520
LEA EAX,[EBX + 0xfffd84b8]
MOV dword ptr [ESI + 0x4],0x5
MOV dword ptr [ESI + 0x2c],0x1
MOV EAX,dword ptr [EAX]
MOV dword ptr [ESI + 0xc],0x1
MOV dword ptr [ESP + 0x8],0x0
MOV dword ptr [EDI + 0x188],0x3
MOV dword ptr [ESP + 0xc],EAX
MOV dword ptr [ESI + 0xc0],0x0
TEST EAX,EAX
JLE 0x000301fa
MOV dword ptr [ESP + 0x10],ESI
SUB ESP,0x4
PUSH dword ptr [ESP + 0xc]
PUSH 0x29
PUSH dword ptr [EDI + 0x248]
CALL 0x00018a70
MOV EDX,dword ptr [EDI + 0x6a8]
ADD ESP,0x10
MOV ESI,dword ptr [EDX + 0x4]
TEST ESI,ESI
JLE 0x0002d52d
MOV EBP,dword ptr [EDX]
CMP EAX,dword ptr [EBP]
JZ 0x0002ebb0
LEA EDX,[EBP + 0x54]
XOR ECX,ECX
JMP 0x0002d526
MOV EBP,EDX
ADD EDX,0x54
CMP dword ptr [EDX + -0x54],EAX
JZ 0x0002ebb0
ADD ECX,0x1
CMP ECX,ESI
JNZ 0x0002d518
ADD dword ptr [ESP + 0x8],0x1
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [ESP + 0xc],EAX
JNZ 0x0002d4df
MOV ESI,dword ptr [ESP + 0x10]
MOV EBP,dword ptr [ESI + 0xc0]
LEA ESI,[ESI]
LEA ESI,[ESI]
TEST EBP,EBP
JZ 0x000301fa
MOV EAX,dword ptr [EBP + 0x4]
TEST EAX,EAX
JZ 0x0002d571
SUB ESP,0x8
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV EAX,0x32
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc69b]
CALL 0x00029e50
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce380]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EAX,dword ptr [ESI + 0xc0]
POP EDX
LEA EDX,[ESI + 0xc8]
POP ECX
PUSH EDX
PUSH EAX
CALL dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,0x4
LEA EDX,[ESP + 0x58]
MOV dword ptr [ESP + 0x58],0x1000000
LEA EBX,[ESP + 0x48]
CALL 0x00029c40
MOV EAX,dword ptr [ESI + 0xc8]
LEA EDX,[EAX + 0x2]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e10
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,0x1
MOV EDX,EBX
MOV byte ptr [ESP + 0x48],0x6
CALL 0x00029c40
MOV EDX,dword ptr [ESI + 0xc8]
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,0x1
MOV byte ptr [ESP + 0x48],DL
MOV EDX,EBX
CALL 0x00029c40
MOV ECX,dword ptr [ESI + 0xc8]
MOV EDX,dword ptr [ESI + 0xcc]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029c40
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
ADD ESP,0x10
MOV dword ptr [ESI],0x27b6
JMP 0x0002d320
CMP EAX,0x28ca
JZ 0x0002e658
CMP EAX,0x28e8
JNZ 0x0002d8a4
TEST EBP,EBP
JZ 0x0002dc40
MOV dword ptr [ESI],0x28e8
JMP 0x0002d320
CMP EAX,0x2561
JZ 0x0002e8c0
JLE 0x0002d740
CMP EAX,0x2696
JZ 0x0002e7e0
JG 0x0002d710
CMP EAX,0x25a0
JZ 0x0002e900
CMP EAX,0x2650
JNZ 0x0002d8a4
TEST EBP,EBP
JZ 0x0002e2e0
CMP dword ptr [EBP + 0x8],0x3c
JZ 0x0002f670
MOV dword ptr [ESI + 0xc],0x1
MOV EAX,dword ptr [ESI + 0x7c]
TEST EAX,EAX
JZ 0x0002faf0
MOV dword ptr [ESI + 0x24],0x1
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESI + 0x20],0x1
JMP 0x0002d2f8
CMP EAX,0x26df
JZ 0x0002e690
CMP EAX,0x2703
JNZ 0x0002d8a4
TEST EBP,EBP
JZ 0x0002dd30
MOV dword ptr [ESI],0x2703
JMP 0x0002d320
CMP EAX,0x246f
JZ 0x0002e8d8
JLE 0x0002d8a0
CMP EAX,0x247a
JZ 0x0002e7b8
CMP EAX,0x24d9
JNZ 0x0002d8a4
TEST EBP,EBP
JNZ 0x0002dba0
TEST ECX,ECX
JG 0x0002eb58
MOV EBP,dword ptr [EDI + 0x254]
MOV EAX,dword ptr [EDI + 0x258]
MOV dword ptr [ESP + 0x40],EBP
MOV dword ptr [ESI + 0x78],EAX
MOV dword ptr [ESI + 0x70],EBP
TEST EBP,EBP
JZ 0x0002d7a1
CMP dword ptr [ESI + 0x78],0x4
JLE 0x0002d7a1
CMP byte ptr [EBP + 0x4],0xc
JZ 0x0003027b
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce19c]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x34]
MOV dword ptr [ESI + 0x4c],0x0
TEST EAX,EAX
JNZ 0x0002d9b1
SUB ESP,0xc
PUSH dword ptr [EDI + 0x248]
CALL 0x000233a0
ADD ESP,0x10
MOV dword ptr [EDI + 0x250],EAX
TEST EAX,EAX
JZ 0x0002fd4a
LEA EDX,[EBX + 0xd9c]
TEST byte ptr [EDX],0x5
JNZ 0x0002fa78
MOV dword ptr [ESI + 0x4c],0x1
MOV EAX,0x32
MOV dword ptr [EDI + 0x188],0x0
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc60a]
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV EAX,dword ptr [ESI + 0x70]
MOV dword ptr [ESI + 0x4],0x0
MOV dword ptr [ESI + 0xc],0x0
MOV dword ptr [ESI + 0x34],0x0
MOV dword ptr [ESI + 0x20],0x0
MOV dword ptr [ESI + 0x30],0x0
MOV dword ptr [ESI + 0x24],0x0
TEST EAX,EAX
JZ 0x0002d310
MOV EDX,dword ptr [ESI + 0x7c]
TEST EDX,EDX
JZ 0x0002f9c8
MOV dword ptr [ESI + 0x74],EDX
JMP 0x0002d310
TEST EAX,EAX
JZ 0x0002d8d0
MOV dword ptr [ESI],0x0
JMP 0x0002d320
SUB ESP,0x8
PUSH 0xe8
PUSH 0x1
CALL 0x0001c990
ADD ESP,0x10
MOV dword ptr [EDI + 0x1d0],EAX
MOV ESI,EAX
MOV dword ptr [EAX],0x0
MOV EDX,dword ptr [EDI + 0xec]
LEA EAX,[EBX + 0xfff97140]
MOV dword ptr [EDI + 0x288],EAX
MOV dword ptr [EDI + 0x338],EAX
MOV dword ptr [EDI + 0x33c],EAX
MOV dword ptr [EDI + 0x340],EAX
MOV dword ptr [EDI + 0x344],EAX
MOV dword ptr [EDI + 0x360],EAX
MOV dword ptr [EDI + 0x364],EAX
MOV dword ptr [EDI + 0x3b0],EAX
MOV dword ptr [EDI + 0x3b4],EAX
MOV dword ptr [EDI + 0x3b8],EAX
MOV dword ptr [EDI + 0x3d8],EAX
MOV dword ptr [EDI + 0x3dc],EAX
MOV dword ptr [EDI + 0x3e0],EAX
MOV dword ptr [EDI + 0x3e4],EAX
MOV dword ptr [EDI + 0x3e8],EAX
MOV dword ptr [EDI + 0x3ec],EAX
MOV dword ptr [EDI + 0x3f0],EAX
MOV dword ptr [EDI + 0x3f4],EAX
MOV dword ptr [ESI + 0x8],0x0
MOV dword ptr [ESI + 0x38],0x0
MOV dword ptr [ESI + 0x34],0x0
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x2c],0x0
TEST EDX,EDX
JZ 0x0002dbe0
MOV dword ptr [ESI + 0x34],0x1
SUB ESP,0xc
LEA EAX,[EDI + 0x178]
PUSH EAX
CALL 0x0001c780
LEA EAX,[EBX + 0xfff87040]
ADD ESP,0x10
MOV dword ptr [EDI + 0x344],EAX
MOV EAX,dword ptr [ESI + 0x34]
MOV dword ptr [ESI + 0x50],0x0
TEST EAX,EAX
JZ 0x0002ea98
MOV dword ptr [ESI + 0x4c],0x0
MOV dword ptr [EDI + 0x344],0x0
MOV EAX,dword ptr [ESI + 0x50]
TEST EAX,EAX
JZ 0x0002d9e2
SUB ESP,0xc
PUSH dword ptr [ESI + 0x60]
CALL 0x0001d220
POP EAX
PUSH dword ptr [ESI + 0x50]
CALL 0x0001d220
POP EAX
PUSH dword ptr [ESI + 0x64]
CALL 0x0001d220
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x70]
TEST EAX,EAX
JZ 0x0002d9f5
SUB ESP,0xc
PUSH EAX
CALL 0x0001d220
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0x38]
TEST EAX,EAX
JZ 0x0002da20
MOV EAX,dword ptr [EDI + 0xec]
TEST EAX,EAX
JNZ 0x0002da20
SUB ESP,0xc
MOV ECX,0xfffffffe
LEA EDX,[EBX + 0xfffcc89b]
MOV EAX,EDI
PUSH 0x0
CALL 0x000306b0
ADD ESP,0x10
SUB ESP,0xc
LEA EAX,[EBX + 0xfff81d30]
PUSH EAX
CALL 0x000612a0
MOV dword ptr [EDI + 0x124],EAX
LEA EAX,[EBX + 0xfff92680]
MOV dword ptr [EDI + 0x3e4],EAX
LEA EAX,[EBX + 0xfff8f590]
MOV dword ptr [EDI + 0x3b0],EAX
POP ECX
POP EBP
PUSH 0x2d
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002e050
MOV dword ptr [EDI + 0x128],0x0
LEA EAX,[EBX + 0xfff92410]
MOV dword ptr [EDI + 0x3ec],EAX
MOV dword ptr [EDI + 0x3e8],EAX
LEA EAX,[EBX + 0xfff92a10]
MOV dword ptr [EDI + 0x3f0],EAX
LEA EAX,[EBX + 0xfff92910]
MOV dword ptr [EDI + 0x3f4],EAX
LEA EAX,[EBX + 0xfff92810]
MOV dword ptr [EDI + 0x3dc],EAX
LEA EAX,[EBX + 0xfff906f0]
MOV dword ptr [EDI + 0x3e0],EAX
LEA EAX,[EBX + 0xfff90010]
MOV dword ptr [EDI + 0x3f8],EAX
LEA EAX,[EBX + 0xfff8edf0]
MOV dword ptr [EDI + 0x3d8],EAX
LEA EAX,[EBX + 0xfff92780]
MOV dword ptr [EDI + 0x3fc],EAX
MOV dword ptr [EDI + 0x400],EAX
MOV EAX,dword ptr [EDI + 0xf4]
TEST EAX,EAX
JZ 0x0002daf6
SUB ESP,0x8
PUSH dword ptr [EDI + 0x8]
PUSH EAX
CALL 0x0005c140
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x128]
TEST EAX,EAX
JZ 0x0002db0f
MOV EAX,EDI
CALL 0x00027380
TEST EAX,EAX
JNZ 0x0002fc1b
MOV EDX,dword ptr [EDI + 0x248]
MOV EAX,EDI
CALL 0x00035e50
MOV EAX,dword ptr [EDI + 0x128]
TEST EAX,EAX
JZ 0x0002db34
MOV EBP,dword ptr [EDI + 0x12c]
TEST EBP,EBP
JZ 0x0002f1c6
MOV dword ptr [EDI + 0x104],0x1
MOV dword ptr [EDI + 0x108],0x1
MOV dword ptr [EDI + 0x144],0x3
MOV ECX,dword ptr [EDI + 0x148]
TEST ECX,ECX
JNZ 0x0002f2d8
MOV EDX,dword ptr [EDI + 0x14c]
TEST EDX,EDX
JNZ 0x0002f2c0
MOV EAX,dword ptr [EDI + 0x14]
TEST EAX,EAX
JZ 0x0002db81
SUB ESP,0xc
PUSH EAX
CALL 0x0001a2d0
ADD ESP,0x10
MOV EAX,dword ptr [EDI + 0x128]
TEST EAX,EAX
JZ 0x0002db95
MOV dword ptr [EDI + 0x100],0x1
MOV dword ptr [ESI],0x2abd
JMP 0x0002d320
SUB ESP,0xc
LEA EAX,[EBX + 0xfffce0b8]
PUSH EAX
CALL 0x0001d000
MOV EDX,EAX
MOV EAX,EDI
CALL 0x00027d60
MOV dword ptr [ESI],0x0
ADD ESP,0x10
JMP 0x0002d320
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce7e0]
PUSH dword ptr [EBP + 0x8]
JMP 0x0002dba9
SUB ESP,0x8
PUSH 0x23
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002fab5
MOV EAX,dword ptr [ESI + 0x8]
TEST EAX,EAX
JNZ 0x0002d97a
MOV EAX,0x5
CALL 0x00029d20
LEA EDX,[EBX + 0xfffcc569]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV dword ptr [ESI],0x247a
JMP 0x0002d320
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
MOV dword ptr [EDI + 0x100],0x0
LEA ESI,[ESI]
TEST EAX,EAX
JS 0x0002ed88
MOV EAX,dword ptr [ESI + 0x3c]
JZ 0x0002ea68
MOV EAX,dword ptr [EAX + 0x18]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x8]
CALL 0x0001caa0
MOV dword ptr [ESI + 0x48],EAX
POP EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001c2f0
MOV EAX,0x32
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc83b]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[ESP + 0x48]
MOV ECX,0x1
MOV byte ptr [ESP + 0x48],0x0
CALL 0x00029c40
MOV EDX,dword ptr [ESI + 0x48]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00038450
POP EAX
LEA EAX,[EBX + 0xfffcc825]
POP EDX
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV dword ptr [ESI + 0x4],0x4
ADD ESP,0x10
MOV dword ptr [ESI],0x2917
JMP 0x0002d320
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
MOV dword ptr [EDI + 0x100],0x0
TEST EAX,EAX
JS 0x0002fef4
MOV EAX,dword ptr [ESI + 0x3c]
JZ 0x0002ea68
MOV EAX,dword ptr [EAX + 0x18]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x8]
CALL 0x0001caa0
MOV dword ptr [ESP + 0x20],EAX
POP EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001c2f0
POP EAX
POP EDX
PUSH 0x20
PUSH dword ptr [EDI + 0x248]
CALL 0x00018f20
ADD ESP,0xc
LEA EDX,[ESP + 0x44]
MOV dword ptr [ESI + 0xbc],EAX
MOV dword ptr [ESP + 0x10],EDX
PUSH EDX
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL 0x000509f0
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
MOV ECX,dword ptr [ESP + 0x10]
TEST ECX,ECX
JZ 0x00030659
SUB ESP,0xc
MOV dword ptr [ESP + 0x1c],ECX
PUSH ECX
CALL 0x00014440
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x0001d300
POP EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x0001d220
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [EBX + 0x23c]
JZ 0x0003034a
MOV ECX,dword ptr [ESP + 0x8]
TEST ECX,ECX
JZ 0x0002f5cf
MOV EAX,0x32
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc67c]
CALL 0x00029e50
MOV EDX,dword ptr [ESP + 0xc]
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,0x1
MOV byte ptr [ESP + 0x40],0x1
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [ECX]
MOV EDX,dword ptr [EAX + 0x30]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x10]
LEA EDX,[ESP + 0x44]
MOV EAX,dword ptr [ECX]
PUSH EDX
PUSH dword ptr [ECX + 0x4]
CALL dword ptr [EAX + 0xc]
MOV ECX,dword ptr [ESI + 0xb8]
MOV dword ptr [ESP + 0x24],EAX
LEA EDX,[ESP + 0x58]
MOV EAX,ECX
MOV ECX,0x4
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x58],0x0
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x20]
MOV EDX,dword ptr [ESP + 0x24]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV ECX,dword ptr [ESP + 0x4c]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EAX,dword ptr [ESI + 0xb8]
TEST byte ptr [EDI + 0x50],0x80
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EDI + 0xe4]
LEA ECX,[EDX + EAX*0x1 + -0x1]
POP EAX
POP EDX
PUSH 0x1
LEA EAX,[ECX + -0x4]
CMOVNZ ECX,EAX
PUSH ECX
MOV dword ptr [ESP + 0x28],ECX
CALL 0x0001c990
MOV dword ptr [ESP + 0x20],EAX
ADD ESP,0x10
TEST byte ptr [EDI + 0x50],0x80
MOV EDX,EAX
MOV ECX,dword ptr [ESP + 0x18]
JNZ 0x00030105
MOVSX EAX,byte ptr [EDI + 0xe7]
MOV dword ptr [ESP + 0x18],0x4
MOV byte ptr [EDX],AL
MOVSX EAX,word ptr [EDI + 0xe6]
MOV byte ptr [EDX + 0x1],AL
MOV EAX,dword ptr [EDI + 0xe4]
MOV byte ptr [EDX + 0x2],AH
MOV EAX,dword ptr [EDI + 0xe4]
MOV byte ptr [EDX + 0x3],AL
LEA EAX,[EDX + 0x4]
MOV dword ptr [ESP + 0x1c],ECX
LEA EDX,[EDI + 0xa4]
SUB ESP,0x4
PUSH dword ptr [EDI + 0xe4]
PUSH EDX
PUSH EAX
CALL 0x00014140
MOV EAX,dword ptr [ESP + 0x28]
MOV EDX,dword ptr [ESP + 0x20]
ADD EAX,dword ptr [EDI + 0xe4]
MOV ECX,EAX
MOV EAX,dword ptr [ESI + 0xb8]
ADD EDX,ECX
MOV dword ptr [ESP + 0x28],ECX
ADD ESP,0xc
MOV ECX,EDX
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0x10]
SUB EDX,0x5
ADD EAX,0x5
PUSH EDX
PUSH EAX
PUSH ECX
CALL 0x00014140
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,dword ptr [ESP + 0x28]
ADD ESP,0x10
MOV EAX,dword ptr [EAX]
LEA EAX,[ECX + EAX*0x1 + -0x5]
MOV ECX,dword ptr [ESP + 0x1c]
CMP ECX,EAX
JNZ 0x0003068d
MOV EDX,dword ptr [ESP + 0x8]
MOV EAX,dword ptr [EDX]
PUSH dword ptr [ESP + 0xc]
PUSH ECX
PUSH dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x14],EDX
PUSH dword ptr [EDX + 0x4]
CALL dword ptr [EAX + 0x2c]
MOV EDX,dword ptr [ESI + 0xb8]
MOV ECX,EAX
MOV EAX,dword ptr [EDI + 0x50]
ADD ESP,0xc
PUSH dword ptr [ESP + 0x44]
MOV dword ptr [ESP + 0x14],ECX
PUSH ECX
PUSH dword ptr [ESP + 0x48]
MOV ECX,dword ptr [ESP + 0x24]
CALL 0x0002bf40
POP EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x0001d220
POP EAX
PUSH dword ptr [ESP + 0x18]
CALL 0x0001d220
POP EAX
PUSH dword ptr [ESP + 0x1c]
CALL 0x0001d220
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
POP EAX
LEA EAX,[EBX + 0xfffcc7a9]
POP EDX
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV dword ptr [ESI + 0x4],0x1
POP ECX
MOV EDX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EDX]
PUSH dword ptr [EDX + 0x4]
CALL dword ptr [EAX + 0x4]
POP EAX
MOV EDX,dword ptr [ESP + 0x14]
PUSH dword ptr [EDX + 0x8]
CALL 0x0001d220
POP EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x0001d220
MOV EAX,dword ptr [ESI + 0xc]
ADD ESP,0x10
JMP 0x0002d2f8
SUB ESP,0x8
PUSH 0x5c
PUSH 0x1
CALL 0x0001c990
MOV dword ptr [EDI + 0x128],EAX
MOV dword ptr [EAX],EDI
CALL 0x0002c3f0
POP EAX
POP EDX
PUSH 0x2e
PUSH dword ptr [EDI + 0x248]
CALL 0x00018b50
ADD ESP,0x10
CMP byte ptr [EAX],0x0
JZ 0x0002fe05
SUB ESP,0x8
PUSH 0x2f
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
POP ECX
MOV EBP,EAX
POP EAX
PUSH 0x2e
PUSH dword ptr [EDI + 0x248]
CALL 0x00018b50
LEA EDX,[EBX + 0xfffcc8bf]
PUSH EDX
PUSH EBP
PUSH EAX
PUSH dword ptr [EDI + 0x128]
CALL 0x0002d130
ADD ESP,0x20
MOV dword ptr [EDI + 0x12c],0x1
MOV dword ptr [ESI],0x2a03
JMP 0x0002d320
MOV dword ptr [ESI + 0x4],0x6
MOV EAX,0x32
MOV dword ptr [EDI + 0x188],0x4
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc686]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffca57e]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffca57e]
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce504]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV dword ptr [ESI],0x284b
JMP 0x0002d320
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcc6ab]
MOV dword ptr [EDI + 0x188],0x1
PUSH dword ptr [ESI + 0x80]
PUSH EAX
PUSH EDI
CALL 0x00026c00
MOV EAX,dword ptr [ESI + 0x74]
LEA EBP,[ESP + 0x58]
MOV EAX,dword ptr [EAX]
BSWAP EAX
MOV dword ptr [ESP],EAX
CALL 0x0001c400
MOV ECX,dword ptr [ESI + 0x74]
MOV dword ptr [ESI + 0x94],EAX
LEA EDX,[ECX + 0x4]
MOV dword ptr [ESI + 0x88],EDX
ADD EDX,EAX
MOV dword ptr [ESI + 0x74],EDX
MOV EAX,dword ptr [ECX + 0x4]
BSWAP EAX
MOV dword ptr [ESP],EAX
CALL 0x0001c400
MOV dword ptr [ESI + 0x98],EAX
MOV EAX,dword ptr [ESI + 0x88]
ADD EAX,0x4
MOV dword ptr [ESI + 0x8c],EAX
MOV EAX,dword ptr [ESI + 0x74]
MOV EAX,dword ptr [EAX]
BSWAP EAX
MOV dword ptr [ESP],EAX
CALL 0x0001c400
MOV ECX,dword ptr [ESI + 0x74]
MOV dword ptr [ESI + 0x9c],EAX
LEA EDX,[ECX + 0x4]
MOV dword ptr [ESI + 0x90],EDX
ADD EDX,EAX
MOV EAX,0x32
MOV dword ptr [ESI + 0x74],EDX
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc67c]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[ESP + 0x48]
MOV ECX,0x1
MOV byte ptr [ESP + 0x48],0x0
CALL 0x00029c40
MOV EBX,dword ptr [ESI + 0xb8]
MOV ECX,0x4
MOV EDX,EBP
MOV dword ptr [ESP + 0x58],0x0
MOV EAX,EBX
CALL 0x00029c40
MOV EAX,dword ptr [EBX]
MOV ECX,dword ptr [ESI + 0x98]
MOV EDX,dword ptr [ESI + 0x8c]
MOV dword ptr [EBX + 0x18],EAX
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EBX,dword ptr [ESI + 0xb8]
MOV ECX,0x4
MOV EDX,EBP
MOV dword ptr [ESP + 0x58],0x0
MOV EAX,EBX
CALL 0x00029c40
MOV EAX,dword ptr [EBX]
MOV ECX,dword ptr [ESI + 0x94]
MOV EDX,dword ptr [ESI + 0x88]
MOV dword ptr [EBX + 0x18],EAX
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV dword ptr [ESI + 0x4],0x3
ADD ESP,0x10
MOV dword ptr [ESI],0x2650
JMP 0x0002d320
TEST EBP,EBP
JZ 0x0002dd1c
CMP dword ptr [EBP + 0x8],0x3c
LEA EDX,[EBX + 0xfffcdfb4]
JNZ 0x0002d2c5
SUB ESP,0x8
PUSH EDX
MOV dword ptr [ESP + 0x14],EDX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP],EDX
MOV dword ptr [ESP + 0x18],EDX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,EAX
LEA EAX,[EDI + 0x110]
CALL 0x00029500
MOV ECX,0x2
LEA EDX,[EBX + 0xfffcc71d]
LEA EAX,[EDI + 0x110]
CALL 0x00029500
LEA ECX,[ESP + 0x40]
LEA EDX,[ESP + 0x3c]
MOV EAX,EBP
CALL 0x000273d0
SUB ESP,0xc
PUSH dword ptr [EDI + 0x110]
CALL 0x0001ca50
MOV dword ptr [ESI + 0x3c],EAX
MOV EBP,EAX
MOV dword ptr [EAX],0x1
LEA EAX,[EBX + 0xfffcc833]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
LEA EDX,[EBX + 0xfffca57e]
MOV dword ptr [EBP + 0x4],EAX
MOV EAX,dword ptr [ESP + 0x4c]
ADD ESP,0xc
MOV EBP,dword ptr [ESI + 0x3c]
TEST EAX,EAX
CMOVZ EAX,EDX
PUSH EAX
LEA EAX,[EBX + 0xfffcbe6e]
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0001d000
MOV dword ptr [EBP + 0xc],EAX
MOV EAX,dword ptr [ESI + 0x3c]
MOV dword ptr [EAX + 0x10],0x1
LEA EAX,[EBX + 0xfffce568]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
LEA EAX,[EBX + 0xfffcc844]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
LEA EAX,[EBX + 0xfffcc859]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
ADD ESP,0x10
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
TEST EAX,EAX
JS 0x0002f3c0
MOV EAX,dword ptr [ESI + 0x3c]
JZ 0x0002fd02
MOV EAX,dword ptr [EAX + 0x18]
MOV EDX,dword ptr [EAX]
MOV EDX,dword ptr [EDX + 0x8]
CMP byte ptr [EDX],0x0
JNZ 0x0002fbcc
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [EAX + 0x4]
SUB ESP,0x8
PUSH dword ptr [EDX + 0x8]
PUSH dword ptr [EAX + 0x8]
CALL 0x00014090
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002ed47
MOV EAX,0x32
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc83b]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,0x1
LEA EDX,[ESP + 0x38]
MOV byte ptr [ESP + 0x38],0x1
CALL 0x00029c40
MOV EDX,dword ptr [ESI + 0x48]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + 0x4]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
SUB ESP,0xc
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001c2f0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00038450
POP EBP
POP EAX
LEA EAX,[EBX + 0xfffcc889]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV dword ptr [ESI],0x2999
JMP 0x0002d320
MOV EBP,dword ptr [ESI + 0x1c]
TEST EBP,EBP
JZ 0x0002e532
MOV ECX,dword ptr [ESI + 0x30]
TEST ECX,ECX
JZ 0x0002e0d1
MOV ECX,dword ptr [ESI + 0x18]
TEST ECX,ECX
JZ 0x0002eb68
MOV dword ptr [EDI + 0x188],0x2
SUB ESP,0xc
PUSH dword ptr [EDI + 0x110]
CALL 0x0001ca50
MOV dword ptr [ESI + 0x3c],EAX
MOV EBP,EAX
MOV dword ptr [EAX],0x1
LEA EAX,[EBX + 0xfffcc837]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
ADD ESP,0xc
MOV dword ptr [EBP + 0x4],EAX
LEA EAX,[EBX + 0xfffcc812]
PUSH dword ptr [EDI + 0xf8]
PUSH dword ptr [EDI + 0x250]
PUSH EAX
CALL 0x0001d000
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
ADD ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
JMP 0x0002dc60
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc60f]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV dword ptr [ESI + 0x38],0x1
ADD ESP,0x10
MOV dword ptr [ESI + 0x34],0x1
JMP 0x0002d9b1
TEST EBP,EBP
JZ 0x0002f538
MOV dword ptr [ESI],0x2956
JMP 0x0002d320
TEST EBP,EBP
JZ 0x0002f2ad
MOV EAX,dword ptr [EBP + 0x8]
CMP EAX,0x63
JZ 0x0002fd2d
CMP EAX,0x64
JNZ 0x0002fc0c
MOV EBP,dword ptr [EDI + 0x174]
TEST EBP,EBP
JNZ 0x0002e643
SUB ESP,0x8
PUSH 0x15
PUSH dword ptr [EDI + 0x248]
CALL 0x00018b50
ADD ESP,0x10
CMP byte ptr [EAX],0x0
JNZ 0x0002fe89
SUB ESP,0xc
LEA EAX,[EBX + 0xfffce7b8]
JMP 0x0002dba9
TEST EBP,EBP
JZ 0x0002f35a
CMP dword ptr [EBP + 0x8],0x3c
JZ 0x0002eda0
MOV dword ptr [ESI + 0xc],0x1
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002d3e0
TEST EBP,EBP
JZ 0x0002f4f1
CMP dword ptr [EBP + 0x8],0x3c
JZ 0x0002f560
MOV dword ptr [ESI + 0xc],0x1
MOV dword ptr [ESI + 0x4],0x2
MOV dword ptr [ESP + 0x3c],0x0
MOV dword ptr [ESP + 0x40],0x0
JMP 0x0002d3e0
TEST EBP,EBP
JZ 0x0002e0c6
MOV EAX,dword ptr [EBP + 0x8]
LEA EDX,[EAX + -0x5b]
CMP EDX,0x1
JA 0x0002f398
MOV EAX,EBP
CALL 0x00026ae0
MOV EDX,dword ptr [EDI + 0x128]
CMP EAX,dword ptr [EDX + 0x8]
JNZ 0x0002fdda
CMP dword ptr [EBP + 0x8],0x5c
JZ 0x00030116
MOV EAX,EBP
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00026ae0
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EDX + 0x4],EAX
MOV EDX,dword ptr [EDI + 0x128]
MOV EAX,EBP
MOV dword ptr [EDX + 0x10],0x0
MOV dword ptr [EDX + 0xc],0x0
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00026ae0
MOV EDX,dword ptr [ESP + 0x8]
MOV dword ptr [EDX + 0x2c],EAX
MOV EDX,dword ptr [EDI + 0x128]
MOV EAX,EBP
MOV dword ptr [ESP + 0x8],EDX
CALL 0x00026ae0
MOV EDX,dword ptr [ESP + 0x8]
SUB ESP,0xc
MOV dword ptr [EDX + 0x30],EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x00061e70
POP EAX
LEA EAX,[EBX + 0xfffcc8b8]
POP EDX
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002da71
TEST EBP,EBP
JZ 0x0002d664
CMP dword ptr [EBP + 0x8],0x3c
JZ 0x0002eec0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce3a4]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV EAX,dword ptr [ESI + 0xc]
JMP 0x0002d2f8
TEST EBP,EBP
JZ 0x0002dc2e
CMP dword ptr [EBP + 0x8],0x6
JZ 0x0002d973
SUB ESP,0xc
LEA EAX,[EBX + 0xfffcdfd8]
JMP 0x0002dba9
TEST EBP,EBP
JNZ 0x0002dba0
TEST ECX,ECX
JG 0x0002f388
MOV EAX,dword ptr [EDI + 0x254]
MOV EDX,dword ptr [EDI + 0x258]
MOV dword ptr [ESP + 0x40],EAX
MOV dword ptr [ESI + 0xa4],EDX
MOV dword ptr [ESI + 0xb4],EAX
SUB ESP,0xc
PUSH dword ptr [ESI + 0xb0]
CALL 0x0001d220
MOV EAX,dword ptr [ESI + 0xb4]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002d6ed
MOV EDX,dword ptr [ESI + 0xa4]
CMP EDX,0x8
JLE 0x0002f3b0
CMP byte ptr [EAX + 0x4],0xe
JNZ 0x0002f3b0
MOV EAX,dword ptr [EAX + 0x5]
SUB EDX,0x9
BSWAP EAX
CMP EAX,EDX
JA 0x0002f3b0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc6d1]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EAX,dword ptr [ESI + 0xb4]
MOV ECX,dword ptr [ESI + 0x88]
MOV EDX,dword ptr [EAX + 0x5]
ADD EAX,0x9
BSWAP EDX
MOV dword ptr [ESP + 0x18],EDX
ADD ESP,0xc
MOV EDX,dword ptr [ESI + 0xb8]
PUSH dword ptr [ESP + 0xc]
PUSH EAX
PUSH dword ptr [ESI + 0x94]
MOV EAX,dword ptr [EDI + 0x50]
CALL 0x0002bf40
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV dword ptr [ESI + 0x4],0x1
ADD ESP,0x10
JMP 0x0002d6ed
TEST EBP,EBP
JZ 0x0002f3d0
MOV dword ptr [ESI],0x2561
JMP 0x0002d320
TEST EBP,EBP
JZ 0x0002fadd
CMP dword ptr [EBP + 0x8],0x6
JNZ 0x0002dbfb
MOV dword ptr [ESI + 0x8],0x1
JMP 0x0002d97a
TEST EBP,EBP
JNZ 0x0002d3e0
JMP 0x0002d310
TEST EBP,EBP
JZ 0x0002f500
MOV dword ptr [ESI],0x28a4
JMP 0x0002d320
TEST EBP,EBP
JZ 0x0002fcf7
LEA EAX,[ESI + 0xc4]
CMP dword ptr [EBP + 0x8],0x3d
MOV dword ptr [ESP + 0x8],EAX
JZ 0x0002f630
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce4b0]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
LEA EAX,[ESI + 0xe0]
MOV dword ptr [ESI + 0xe4],0x4
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESI + 0xc0]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL dword ptr [EAX + 0x10]
MOV EAX,dword ptr [ESI + 0xc0]
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x10]
PUSH EAX
CALL dword ptr [EAX + 0x20]
ADD ESP,0x10
JMP 0x0002e7aa
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffce1c0]
JMP 0x0002dba9
MOV dword ptr [ESP + 0x14],EDX
SUB ESP,0x8
PUSH 0x1
PUSH EAX
MOV dword ptr [ESP + 0x1c],EAX
CALL 0x0001c990
ADD ESP,0xc
MOV ECX,dword ptr [ESP + 0x10]
PUSH ECX
MOV dword ptr [ESP + 0x18],ECX
MOV dword ptr [ESP + 0x14],EAX
PUSH EAX
PUSH dword ptr [ESP + 0x14]
CALL 0x0001c8e0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x14]
MOV ECX,dword ptr [ESP + 0x10]
TEST byte ptr [EDX],0x2
JZ 0x0002ed68
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,EAX
ADD EAX,ECX
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,dword ptr [EBX + 0x230]
MOV dword ptr [ESP + 0x10],EAX
TEST ECX,ECX
JLE 0x0002ea50
MOV dword ptr [ESP + 0x18],ESI
MOV ESI,dword ptr [ESP + 0x14]
MOV dword ptr [ESP + 0x14],EDI
MOV EDI,EDX
LEA ESI,[ESI]
MOVSX EAX,byte ptr [EDI]
CMP AL,0xd
JZ 0x0002ea41
CMP AL,0xa
JZ 0x0002ea2f
TEST AL,0x60
JZ 0x0002ea41
SUB ESP,0x8
MOV ECX,dword ptr [ESP + 0x18]
PUSH dword ptr [ECX]
PUSH EAX
CALL 0x00014680
ADD ESP,0x10
ADD EDI,0x1
CMP EDI,ESI
JNZ 0x0002ea20
MOV ESI,dword ptr [ESP + 0x18]
MOV EDI,dword ptr [ESP + 0x14]
SUB ESP,0xc
PUSH dword ptr [ESP + 0x18]
CALL 0x0001d220
ADD ESP,0x10
JMP 0x0002d409
SUB ESP,0xc
PUSH EAX
CALL 0x0001c2f0
POP EAX
POP EDX
PUSH 0x1
LEA ECX,[EBX + 0xfffcc751]
PUSH 0xd
XOR EDX,EDX
MOV EAX,EDI
CALL 0x00034b00
MOV dword ptr [ESI],0x0
ADD ESP,0x10
JMP 0x0002d320
SUB ESP,0x8
PUSH 0x20
PUSH dword ptr [EDI + 0x248]
CALL 0x00018f20
MOV dword ptr [ESI + 0xbc],EAX
MOV dword ptr [ESP],EAX
CALL 0x000631b0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002fb1a
SUB ESP,0x8
MOV dword ptr [ESI + 0x70],0x0
MOV dword ptr [ESI + 0x84],0x0
MOV dword ptr [ESI + 0x7c],0x0
PUSH 0x1c
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002d7b9
CALL 0x00061870
TEST EAX,EAX
JZ 0x0002d7b9
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce090]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV dword ptr [ESI + 0x68],0x1000000
MOV byte ptr [ESI + 0x6c],0xb
POP EBP
POP EAX
LEA EAX,[EBX + 0xfff970c0]
PUSH EDI
PUSH EAX
LEA EAX,[ESI + 0x78]
PUSH EAX
LEA EAX,[ESP + 0x54]
PUSH EAX
LEA EAX,[ESI + 0x68]
PUSH 0x5
PUSH EAX
CALL 0x00061990
ADD ESP,0x20
MOV EBP,dword ptr [ESP + 0x40]
MOV dword ptr [EDI + 0x6d0],EAX
TEST EAX,EAX
JZ 0x0002d78a
LEA ESI,[ESI]
MOV dword ptr [ESI],0x24d9
JMP 0x0002d320
SUB ESP,0x4
LEA EAX,[EBX + 0xfffce5a4]
PUSH dword ptr [ESP + 0x40]
PUSH dword ptr [ESP + 0x48]
PUSH EAX
CALL 0x0001d000
LEA ECX,[EBX + 0xfffce5e8]
MOV EBP,EAX
POP EAX
POP EDX
PUSH 0x0
PUSH 0xe
MOV EDX,EBP
MOV EAX,EDI
CALL 0x00034b00
MOV dword ptr [ESP],EBP
CALL 0x0001d220
MOV dword ptr [ESI],0x0
ADD ESP,0x10
JMP 0x0002d320
MOV ESI,dword ptr [ESP + 0x10]
MOV dword ptr [ESI + 0xc0],EBP
JMP 0x0002d550
MOV dword ptr [ESI + 0xc],0x0
LEA EDX,[ESP + 0x3c]
MOV EAX,EBP
LEA ECX,[ESP + 0x40]
CALL 0x000273d0
MOV EAX,dword ptr [EBP + 0x18]
MOV EDX,dword ptr [EBP]
SUB EDX,EAX
TEST EDX,EDX
JLE 0x0002ebf7
MOV EDX,dword ptr [EBP + 0x14]
MOVZX EDX,byte ptr [EDX + EAX*0x1]
ADD EAX,0x1
MOV dword ptr [EBP + 0x18],EAX
TEST DL,DL
JNZ 0x0002fda7
MOV EAX,dword ptr [ESI + 0x4]
TEST EAX,EAX
JZ 0x0002ecd0
LEA EDX,[EAX + -0x2]
CMP EDX,0x1
JBE 0x0002ecaf
CMP EAX,0x1
JZ 0x00030371
CMP EAX,0x7
JZ 0x000303a4
CMP EAX,0x5
JZ 0x0002ecd0
CMP EAX,0x6
JZ 0x0003043a
CMP EAX,0x4
JNZ 0x0003066e
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce2d4]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
LEA EAX,[EDI + 0x110]
MOV ECX,0xf
LEA EDX,[EBX + 0xfffcc64e]
CALL 0x00029500
POP ECX
POP EBP
PUSH 0x1e
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002ecd0
MOV EDX,dword ptr [ESI + 0x4c]
MOV EAX,dword ptr [EDI + 0x248]
MOV dword ptr [ESI + 0x34],0x0
TEST EDX,EDX
JZ 0x0002d7cb
SUB ESP,0x8
PUSH 0x1e
PUSH EAX
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x0002d7f9
JMP 0x0002d7cb
CMP EAX,0x2
JZ 0x000303c1
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc637]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x3c]
MOV EBP,dword ptr [ESP + 0x40]
MOV dword ptr [ESP + 0x8],EAX
MOV EDX,EAX
MOV ECX,EBP
LEA EAX,[EBX + 0xfffcc67c]
CALL 0x0002bed0
MOV EDX,dword ptr [ESP + 0x8]
MOV ECX,EBP
MOV dword ptr [ESI + 0x14],EAX
LEA EAX,[EBX + 0xfffcc83b]
CALL 0x0002bed0
SUB ESP,0x8
MOV dword ptr [ESI + 0x18],EAX
PUSH 0x26
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002fc86
SUB ESP,0x8
MOV dword ptr [ESI + 0x1c],EAX
PUSH 0x27
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002fc4a
MOV dword ptr [ESI + 0x28],0x0
JMP 0x0002d43e
LEA EAX,[EDI + 0x110]
MOV ECX,0x18
LEA EDX,[EBX + 0xfffcc870]
CALL 0x00029500
JMP 0x0002e418
SUB ESP,0x4
PUSH ECX
PUSH dword ptr [ESP + 0x14]
PUSH dword ptr [EDI + 0x110]
CALL 0x00067560
ADD ESP,0x10
JMP 0x0002ea50
MOV dword ptr [EDI + 0x100],0x1
JMP 0x0002d68e
LEA ECX,[ESP + 0x30]
LEA EDX,[ESP + 0x24]
MOV EAX,EBP
CALL 0x000273d0
LEA ECX,[ESP + 0x34]
LEA EDX,[ESP + 0x28]
MOV EAX,EBP
CALL 0x000273d0
LEA ECX,[ESP + 0x38]
LEA EDX,[ESP + 0x2c]
MOV EAX,EBP
CALL 0x000273d0
SUB ESP,0xc
PUSH dword ptr [EDI + 0x110]
CALL 0x0001ca50
MOV dword ptr [ESI + 0x3c],EAX
MOV dword ptr [EAX],0x1
MOV EAX,EBP
CALL 0x00026ae0
ADD ESP,0x10
MOV dword ptr [ESI + 0x40],EAX
TEST EAX,EAX
JLE 0x0002f9e1
LEA EAX,[ESP + 0x40]
XOR ECX,ECX
MOV dword ptr [ESP + 0x1c],EDI
MOV dword ptr [ESP + 0xc],EAX
LEA EAX,[ESP + 0x3c]
MOV EDI,ECX
MOV dword ptr [ESP + 0x10],EAX
LEA EAX,[EBX + 0xfffcbe6e]
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EBX + 0x3b0]
MOV dword ptr [ESP + 0x18],EAX
JMP 0x0002ee66
MOV ECX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x8],EDX
SUB ESP,0x4
ADD EDI,0x1
PUSH ECX
PUSH EAX
PUSH dword ptr [ESP + 0x20]
CALL 0x0001d000
ADD ESP,0xc
MOV EDX,dword ptr [ESP + 0xc]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
ADD ESP,0x10
CMP dword ptr [ESI + 0x40],EDI
JLE 0x0002f9dd
MOV ECX,dword ptr [ESP + 0xc]
MOV EDX,dword ptr [ESP + 0x10]
MOV EAX,EBP
CALL 0x000273d0
MOV EAX,dword ptr [EBP + 0x18]
MOV ECX,dword ptr [EBP]
XOR EDX,EDX
SUB ECX,EAX
TEST ECX,ECX
JLE 0x0002ee96
MOV EDX,dword ptr [EBP + 0x14]
CMP byte ptr [EDX + EAX*0x1],0x0
SETNZ DL
ADD EAX,0x1
MOV dword ptr [EBP + 0x18],EAX
MOVZX EDX,DL
MOV EAX,dword ptr [ESP + 0x40]
TEST EAX,EAX
JNZ 0x0002ee30
MOV ECX,dword ptr [ESP + 0x18]
MOV dword ptr [ESP + 0x40],0x20
MOV EAX,0x20
MOV dword ptr [ESP + 0x3c],ECX
JMP 0x0002ee34
LEA ECX,[ESP + 0x38]
LEA EDX,[ESP + 0x3c]
MOV EAX,EBP
CALL 0x000273d0
MOV ECX,dword ptr [ESP + 0x38]
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESP + 0x8],ECX
MOV dword ptr [ESI + 0xd0],ECX
MOV ECX,dword ptr [ESI + 0xc8]
MOV dword ptr [ESI + 0xd4],EAX
LEA EDX,[ECX + 0x2]
CMP dword ptr [ESP + 0x8],EDX
JNZ 0x0002f368
CMP byte ptr [EAX],0x6
JNZ 0x0002f368
MOVSX EDX,byte ptr [EAX + 0x1]
CMP ECX,EDX
JNZ 0x0002f368
SUB ESP,0x4
ADD EAX,0x2
PUSH ECX
PUSH dword ptr [ESI + 0xcc]
PUSH EAX
CALL 0x000141c0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002f368
MOV EAX,dword ptr [ESI + 0xc0]
LEA ECX,[ESI + 0xe0]
SUB ESP,0x4
MOV dword ptr [ESP + 0x10],ECX
PUSH ECX
PUSH dword ptr [EDI + 0x6a4]
PUSH EAX
CALL dword ptr [EAX + 0xc]
MOV dword ptr [ESI + 0xe4],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x000303f8
MOV EAX,dword ptr [ESI + 0xc0]
LEA ECX,[ESI + 0xc4]
SUB ESP,0x8
MOV dword ptr [ESP + 0x10],ECX
PUSH ECX
PUSH EAX
CALL dword ptr [EAX + 0x1c]
MOV dword ptr [ESI + 0xe4],EAX
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00030541
MOV dword ptr [ESI + 0xd0],0x0
MOV dword ptr [ESI + 0xd4],0x0
MOV dword ptr [ESI + 0xd8],0x0
MOV dword ptr [ESI + 0xdc],0x0
MOV EAX,dword ptr [ESI + 0xc0]
SUB ESP,0x8
MOV ECX,dword ptr [EAX + 0x14]
LEA EAX,[ESI + 0xd8]
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x18],ECX
PUSH 0x28
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
POP EDX
LEA EDX,[ESI + 0xd0]
POP ECX
PUSH dword ptr [ESP + 0x14]
PUSH EDX
PUSH EAX
PUSH dword ptr [ESI + 0xe0]
PUSH dword ptr [ESP + 0x20]
PUSH dword ptr [ESI + 0xc0]
MOV ECX,dword ptr [ESP + 0x30]
CALL ECX
MOV dword ptr [ESI + 0xe4],EAX
ADD ESP,0x20
CMP EAX,0x1
JBE 0x0002fcc4
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffce460]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EAX,dword ptr [ESI + 0xc0]
ADD ESP,0xc
LEA EDX,[ESI + 0xc8]
PUSH EDX
PUSH dword ptr [ESI + 0xc4]
PUSH EAX
CALL dword ptr [EAX + 0x2c]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00030591
MOV EAX,dword ptr [ESI + 0xe4]
LEA ECX,[ESI + 0xe0]
MOV dword ptr [ESP + 0xc],ECX
TEST EAX,EAX
JNZ 0x0002e970
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce4dc]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
XOR EAX,EAX
CALL 0x00029d20
LEA EDX,[ESP + 0x58]
MOV ECX,dword ptr [EAX]
MOV dword ptr [ESI + 0xb8],EAX
MOV dword ptr [ESP + 0x28],EDX
MOV dword ptr [ESP + 0x24],ECX
MOV ECX,0x4
MOV dword ptr [ESP + 0x20],EAX
MOV dword ptr [ESP + 0x58],0x0
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x20]
LEA EDX,[EDI + 0xa4]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV ECX,dword ptr [EDI + 0xe4]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[ESP + 0x50]
MOV ECX,0x1
MOV dword ptr [ESP + 0x20],EDX
MOV byte ptr [ESP + 0x50],0x32
CALL 0x00029c40
MOV EDX,dword ptr [EDI + 0x250]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc69b]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,dword ptr [ESP + 0x24]
MOV EDX,dword ptr [EAX + 0x10]
MOV EAX,dword ptr [EAX]
SUB EAX,ECX
ADD EDX,ECX
MOV dword ptr [ESI + 0xc8],EAX
MOV EAX,dword ptr [ESI + 0xc0]
MOV dword ptr [ESI + 0xcc],EDX
LEA EDX,[ESI + 0xc8]
PUSH dword ptr [ESP + 0x20]
PUSH EDX
PUSH dword ptr [ESI + 0xc4]
PUSH EAX
CALL dword ptr [EAX + 0x24]
MOV EAX,0x42
ADD ESP,0x20
CALL 0x00029d20
MOV EDX,dword ptr [ESP + 0x18]
MOV ECX,0x4
MOV dword ptr [ESI + 0xb8],EAX
MOV dword ptr [ESP + 0x14],EAX
MOV dword ptr [ESP + 0x48],0x0
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [ESP + 0x44]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV ECX,dword ptr [ESP + 0x40]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV EAX,dword ptr [ESI + 0xc0]
SUB ESP,0x8
PUSH dword ptr [ESP + 0x18]
PUSH EAX
CALL dword ptr [EAX + 0x28]
MOV dword ptr [ESI + 0xc],0x0
MOV EAX,dword ptr [ESI + 0xc0]
POP EDX
POP ECX
JMP 0x0002e979
SUB ESP,0x8
PUSH 0x95
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x00030168
SUB ESP,0xc
PUSH EDI
CALL 0x0002cea0
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0003014e
SUB ESP,0x8
PUSH 0x16
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
ADD ESP,0x10
TEST EAX,EAX
JZ 0x000301e0
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI + 0x128]
CALL 0x00034840
MOV EAX,dword ptr [EDI + 0x174]
ADD ESP,0x10
TEST EAX,EAX
JNZ 0x0002feab
SUB ESP,0x8
PUSH 0x2b
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
MOV dword ptr [ESP + 0x18],EAX
POP EAX
POP EDX
PUSH 0x14
PUSH dword ptr [EDI + 0x248]
CALL 0x00018b50
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x8]
MOV EBP,EAX
MOV EAX,dword ptr [EDI + 0x128]
TEST EDX,EDX
JNZ 0x0003002c
CMP byte ptr [EBP],0x0
JZ 0x00030006
SUB ESP,0xc
LEA ECX,[EBX + 0xfff97110]
LEA EDX,[EBX + 0xfffcc8d6]
PUSH 0x0
CALL 0x0002ab60
MOV EDX,EBP
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
ADD ESP,0x10
MOV EAX,EDI
CALL 0x00033b40
MOV dword ptr [ESI],0x2a90
JMP 0x0002d320
SUB ESP,0x8
PUSH 0xc
PUSH EDI
CALL 0x0003a8b0
ADD ESP,0x10
JMP 0x0002db6e
SUB ESP,0x4
PUSH dword ptr [EDI + 0x120]
PUSH dword ptr [EDI + 0x11c]
PUSH EDI
CALL 0x00036ab0
ADD ESP,0x10
JMP 0x0002db60
MOV EAX,0x3d
XOR EBP,EBP
CALL 0x00029d20
MOV EDX,dword ptr [ESI + 0x40]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e10
MOV EAX,dword ptr [ESI + 0x40]
TEST EAX,EAX
JLE 0x0002f33f
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX + EBP*0x4]
ADD EBP,0x1
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
CMP dword ptr [ESI + 0x40],EBP
JG 0x0002f320
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00038450
SUB ESP,0xc
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001c2f0
ADD ESP,0x10
MOV dword ptr [ESI],0x28ca
JMP 0x0002d320
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce3cc]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002e7aa
MOV dword ptr [ESI],0x2696
JMP 0x0002d320
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffce638]
JMP 0x0002dba9
SUB ESP,0xc
LEA EAX,[EBX + 0xfffce35c]
JMP 0x0002dba9
MOV dword ptr [EDI + 0x100],0x1
JMP 0x0002e5f0
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
MOV dword ptr [EDI + 0x100],0x0
TEST EAX,EAX
JS 0x0002fe7a
MOV EAX,dword ptr [ESI + 0x3c]
JZ 0x0002fec8
MOV EAX,dword ptr [EAX + 0x18]
SUB ESP,0xc
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x8]
CALL 0x0001caa0
MOV dword ptr [EDI + 0x250],EAX
POP EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001c2f0
ADD ESP,0x10
JMP 0x0002d7f9
MOV dword ptr [EDI + 0x188],0x1
MOV EAX,0x32
MOV dword ptr [ESI + 0x20],0x1
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc67c]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[ESP + 0x38]
MOV ECX,0x1
MOV byte ptr [ESP + 0x38],0x0
CALL 0x00029c40
MOV EDX,dword ptr [ESI + 0x60]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029e50
MOV EBP,dword ptr [ESI + 0xb8]
LEA EDX,[ESP + 0x48]
MOV ECX,0x4
MOV dword ptr [ESP + 0x48],0x0
MOV EAX,EBP
CALL 0x00029c40
MOV EAX,dword ptr [EBP]
MOV ECX,dword ptr [ESI + 0x54]
MOV EDX,dword ptr [ESI + 0x50]
MOV dword ptr [EBP + 0x18],EAX
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc6ec]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV dword ptr [ESI],0x26df
JMP 0x0002d320
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
MOV dword ptr [EDI + 0x100],0x0
TEST EAX,EAX
JS 0x0002fde8
JNZ 0x0002f2f5
SUB ESP,0xc
PUSH dword ptr [ESI + 0x3c]
JMP 0x0002ea6c
SUB ESP,0x4
PUSH ECX
PUSH EDX
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
MOV dword ptr [EDI + 0x100],0x0
JMP 0x0002e42a
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc6ff]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
LEA EAX,[EBX + 0xd9c]
ADD ESP,0x10
TEST byte ptr [EAX],0x1
JNZ 0x0002ff03
MOV EAX,dword ptr [ESI + 0x5c]
TEST EAX,EAX
JNZ 0x0002ffa0
SUB ESP,0x8
PUSH 0x20
PUSH dword ptr [EDI + 0x248]
CALL 0x00018f20
ADD ESP,0xc
LEA ECX,[ESP + 0x44]
MOV dword ptr [ESI + 0xbc],EAX
MOV dword ptr [ESP + 0x10],ECX
PUSH ECX
PUSH 0x0
PUSH EAX
CALL 0x000509f0
MOV dword ptr [ESP + 0x18],EAX
ADD ESP,0x10
CMP EAX,dword ptr [EBX + 0x23c]
JNZ 0x0002ddec
LEA EAX,[EDI + 0x110]
MOV ECX,0x1c
LEA EDX,[EBX + 0xfffcc77b]
MOV dword ptr [ESP + 0x8],EAX
CALL 0x00029500
MOV EDX,dword ptr [ESP + 0x40]
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00029500
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDX,[EBX + 0xfffca1e9]
CALL 0x00029500
MOV EAX,dword ptr [ESI + 0xc]
JMP 0x0002d2f8
MOV EAX,EBP
LEA ECX,[ESP + 0x38]
LEA EDX,[ESP + 0x3c]
CALL 0x000273d0
MOV EAX,dword ptr [ESP + 0x3c]
MOV dword ptr [ESI + 0xd4],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESI + 0xd0],EAX
MOV EAX,dword ptr [ESI + 0xe4]
CMP EAX,0x1
JNZ 0x0002f049
JMP 0x0002efad
LEA EAX,[EBX + 0xd9c]
TEST byte ptr [EAX],0x1
JNZ 0x0002ff58
MOV EAX,0x32
CALL 0x00029d20
MOV EDX,dword ptr [EDI + 0x250]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc569]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA EDX,[EBX + 0xfffcc67c]
CALL 0x00029e50
MOV EAX,dword ptr [ESI + 0xb8]
LEA ECX,[ESP + 0x40]
MOV byte ptr [ESP + 0x40],0x1
MOV EDX,ECX
MOV dword ptr [ESP + 0xc],ECX
MOV ECX,0x1
CALL 0x00029c40
MOV EAX,dword ptr [ESI + 0xb8]
LEA ECX,[ESP + 0x48]
MOV dword ptr [ESP + 0x48],0x0
MOV EDX,ECX
MOV ECX,0x4
MOV dword ptr [ESP + 0x10],EDX
MOV dword ptr [ESP + 0x8],EAX
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESI + 0x8c]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV ECX,dword ptr [ESI + 0x98]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV ECX,dword ptr [ESI + 0xb8]
MOV EDX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x48],0x0
MOV EAX,ECX
MOV ECX,0x4
MOV dword ptr [ESP + 0x8],EAX
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESI + 0x88]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV EAX,dword ptr [ESI + 0xb8]
MOV ECX,dword ptr [ESI + 0x94]
CALL 0x00029dc0
MOV EAX,dword ptr [ESI + 0xb8]
MOV EDX,dword ptr [EAX]
MOV EAX,dword ptr [EDI + 0xe4]
LEA EAX,[EDX + EAX*0x1 + -0x1]
MOV dword ptr [ESI + 0xa0],EAX
TEST byte ptr [EDI + 0x50],0x80
JNZ 0x0002fdf7
ADD EAX,0x4
MOV EDX,dword ptr [ESI + 0x94]
SUB ESP,0x8
LEA EAX,[EAX + EDX*0x1 + 0x5]
LEA EDX,[EAX + 0x4]
ADD EAX,0x8
MOV dword ptr [ESI + 0xa8],EDX
PUSH 0x1
PUSH EAX
CALL 0x0001c990
MOVSX EDX,byte ptr [ESI + 0xab]
ADD ESP,0xc
MOV dword ptr [ESI + 0xb0],EAX
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [ESI + 0xb0]
MOVSX EDX,word ptr [ESI + 0xaa]
MOV byte ptr [EAX + 0x1],DL
MOV EAX,dword ptr [ESI + 0xb0]
MOV EDX,dword ptr [ESI + 0xa8]
MOV byte ptr [EAX + 0x2],DH
MOV EAX,dword ptr [ESI + 0xb0]
MOV EDX,dword ptr [ESI + 0xa8]
MOV byte ptr [EAX + 0x3],DL
MOV EAX,dword ptr [ESI + 0xb0]
LEA EDX,[EAX + 0x5]
MOV dword ptr [ESI + 0xac],EDX
MOV byte ptr [EAX + 0x4],0xd
MOV EAX,dword ptr [ESI + 0xac]
MOVSX EDX,byte ptr [ESI + 0x97]
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [ESI + 0xac]
MOVSX EDX,word ptr [ESI + 0x96]
MOV byte ptr [EAX + 0x1],DL
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [ESI + 0x94]
MOV byte ptr [EAX + 0x2],DH
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [ESI + 0x94]
MOV byte ptr [EAX + 0x3],DL
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [ESI + 0x88]
ADD EAX,0x4
MOV dword ptr [ESI + 0xac],EAX
PUSH dword ptr [ESI + 0x94]
PUSH EDX
PUSH EAX
CALL 0x00014140
MOVSX EDX,byte ptr [ESI + 0xa3]
MOV EAX,dword ptr [ESI + 0x94]
ADD ESP,0x10
ADD EAX,dword ptr [ESI + 0xac]
MOV dword ptr [ESI + 0xac],EAX
MOV byte ptr [EAX],DL
MOV EAX,dword ptr [ESI + 0xac]
MOVSX EDX,word ptr [ESI + 0xa2]
MOV byte ptr [EAX + 0x1],DL
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [ESI + 0xa0]
MOV byte ptr [EAX + 0x2],DH
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [ESI + 0xa0]
MOV byte ptr [EAX + 0x3],DL
MOV EDX,dword ptr [ESI + 0xac]
LEA EAX,[EDX + 0x4]
MOV dword ptr [ESI + 0xac],EAX
TEST byte ptr [EDI + 0x50],0x80
JNZ 0x0002f903
MOVSX EAX,byte ptr [EDI + 0xe7]
MOV byte ptr [EDX + 0x4],AL
MOV EAX,dword ptr [ESI + 0xac]
MOVSX EDX,word ptr [EDI + 0xe6]
MOV byte ptr [EAX + 0x1],DL
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [EDI + 0xe4]
MOV byte ptr [EAX + 0x2],DH
MOV EAX,dword ptr [ESI + 0xac]
MOV EDX,dword ptr [EDI + 0xe4]
MOV byte ptr [EAX + 0x3],DL
MOV EAX,dword ptr [ESI + 0xac]
ADD EAX,0x4
MOV dword ptr [ESI + 0xac],EAX
SUB ESP,0x4
LEA EDX,[EDI + 0xa4]
PUSH dword ptr [EDI + 0xe4]
PUSH EDX
PUSH EAX
CALL 0x00014140
MOV EDX,dword ptr [ESI + 0xb8]
ADD ESP,0xc
MOV EAX,dword ptr [EDI + 0xe4]
ADD EAX,dword ptr [ESI + 0xac]
MOV ECX,dword ptr [EDX]
MOV EDX,dword ptr [EDX + 0x10]
MOV dword ptr [ESI + 0xac],EAX
SUB ECX,0x5
ADD EDX,0x5
PUSH ECX
PUSH EDX
PUSH EAX
CALL 0x00014140
MOV EAX,dword ptr [ESI + 0xb8]
MOV EDX,dword ptr [ESI + 0xac]
MOV EAX,dword ptr [EAX]
LEA EAX,[EDX + EAX*0x1 + -0x5]
MOV dword ptr [ESI + 0xac],EAX
MOV byte ptr [EAX],0x0
MOV EAX,dword ptr [ESI + 0xac]
MOV byte ptr [EAX + 0x1],0x0
MOV EAX,dword ptr [ESI + 0xac]
MOV byte ptr [EAX + 0x2],0x0
MOV EAX,dword ptr [ESI + 0xac]
MOV byte ptr [EAX + 0x3],0x0
LEA EAX,[EBX + 0xfff970c0]
POP EDX
POP ECX
PUSH EDI
PUSH EAX
LEA EAX,[ESI + 0xa4]
PUSH EAX
MOV EAX,dword ptr [ESI + 0xa8]
PUSH dword ptr [ESP + 0x20]
ADD EAX,0x4
PUSH EAX
PUSH dword ptr [ESI + 0xb0]
CALL 0x00061990
ADD ESP,0x20
MOV dword ptr [EDI + 0x6d0],EAX
TEST EAX,EAX
JNZ 0x0002f388
MOV EAX,dword ptr [ESP + 0x40]
JMP 0x0002e806
MOV dword ptr [ESI + 0x80],0x0
ADD EAX,0x9
MOV dword ptr [ESI + 0x74],EAX
JMP 0x0002d310
MOV EDI,dword ptr [ESP + 0x1c]
MOV EAX,dword ptr [ESP + 0x30]
MOV EBP,dword ptr [ESI + 0x3c]
TEST EAX,EAX
JZ 0x0002fe56
SUB ESP,0x4
PUSH dword ptr [ESP + 0x28]
PUSH EAX
LEA EAX,[EBX + 0xfffcc7e7]
PUSH EAX
CALL 0x0001d000
ADD ESP,0x10
MOV dword ptr [EBP + 0x4],EAX
MOV EBP,dword ptr [ESI + 0x3c]
MOV dword ptr [EBP + 0x8],0x1
MOV EAX,dword ptr [ESI + 0x40]
OR EAX,dword ptr [ESP + 0x30]
MOV EDX,dword ptr [ESP + 0x34]
JNZ 0x0002fca6
TEST EDX,EDX
JZ 0x00030365
MOV EAX,dword ptr [ESP + 0x28]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xfffcc71e]
PUSH dword ptr [ESP + 0x8]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffce534]
PUSH EAX
CALL 0x0001d000
ADD ESP,0x10
MOV dword ptr [EBP + 0xc],EAX
MOV EBP,dword ptr [ESI + 0x3c]
MOV dword ptr [EBP + 0x10],0x1
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH EBP
CALL 0x000675f0
ADD ESP,0x10
JMP 0x0002f51a
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffcc5f3]
PUSH EAX
CALL 0x0001d000
MOV EBP,EAX
MOV dword ptr [ESP],EAX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,EBP
MOV ECX,EAX
LEA EAX,[EDI + 0x110]
CALL 0x00029500
SUB ESP,0xc
PUSH EBP
CALL 0x0001d220
ADD ESP,0x10
JMP 0x0002d7f9
MOV EAX,0x5
CALL 0x00029d20
LEA EDX,[EBX + 0xfffcc55c]
MOV dword ptr [ESI + 0xb8],EAX
CALL 0x00029e50
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV dword ptr [ESI],0x246f
JMP 0x0002d320
MOV EAX,dword ptr [ESI + 0x80]
LEA EDX,[EAX + 0x1]
MOV EAX,dword ptr [ESI + 0xc]
MOV dword ptr [ESI + 0x80],EDX
CMP EDX,dword ptr [ESI + 0x84]
JL 0x0002d2f8
MOV dword ptr [ESI + 0x24],0x1
JMP 0x0002d2f8
SUB ESP,0xc
PUSH dword ptr [ESI + 0xbc]
CALL 0x00063170
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xfffcc578]
PUSH EAX
PUSH EDI
CALL 0x00026c00
POP EAX
PUSH dword ptr [ESI + 0xbc]
CALL 0x00052e80
ADD ESP,0x10
CMP EAX,0x3
MOV EBP,EAX
SETZ DL
CMP EAX,0x9
JZ 0x00030042
TEST DL,DL
JNZ 0x00030042
CMP EAX,0xa
JNZ 0x00030090
SUB ESP,0xc
LEA EAX,[ESP + 0x4c]
PUSH EAX
LEA EAX,[ESI + 0x64]
PUSH EAX
LEA EAX,[ESI + 0x54]
PUSH EAX
LEA EAX,[ESI + 0x60]
PUSH EAX
PUSH dword ptr [ESI + 0xbc]
CALL 0x00051ad0
ADD ESP,0x20
MOV dword ptr [ESI + 0x50],EAX
TEST EAX,EAX
JZ 0x00030219
MOV dword ptr [ESI + 0x58],0x0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcdff8]
PUSH EAX
PUSH EDI
CALL 0x00026c00
ADD ESP,0x10
SUB ESP,0x8
PUSH 0x0
PUSH dword ptr [ESI + 0xbc]
CALL 0x00051ea0
ADD ESP,0x10
MOV dword ptr [ESI + 0x5c],EAX
JMP 0x0002eac1
MOV EBP,dword ptr [ESI + 0x48]
SUB ESP,0xc
PUSH EBP
CALL 0x00014440
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x0001d300
POP EBP
PUSH dword ptr [ESI + 0x48]
CALL 0x0001d220
POP EAX
MOV EAX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [EAX + 0x18]
MOV EAX,dword ptr [EAX]
PUSH dword ptr [EAX + 0x8]
CALL 0x0001caa0
ADD ESP,0x10
MOV dword ptr [ESI + 0x48],EAX
MOV EAX,dword ptr [ESI + 0x3c]
MOV EAX,dword ptr [EAX + 0x18]
JMP 0x0002e44c
SUB ESP,0x8
PUSH EAX
LEA EAX,[EBX + 0xfffce74c]
JMP 0x0002dba9
SUB ESP,0xc
MOV EAX,dword ptr [EDI + 0x128]
XOR ECX,ECX
LEA EDX,[EBX + 0xfffce6ec]
PUSH 0x0
CALL 0x0002ab60
MOV dword ptr [ESI + 0xb8],EAX
MOV EDX,EAX
MOV EAX,EDI
CALL 0x00033b40
ADD ESP,0x10
JMP 0x0002db0f
MOV ECX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x3c]
LEA EAX,[EBX + 0xfffcc69b]
CALL 0x0002bed0
TEST EAX,EAX
JZ 0x0002ed3b
MOV EAX,dword ptr [EDI + 0x6a8]
TEST EAX,EAX
JZ 0x000303dc
MOV EAX,dword ptr [EAX + 0x4]
TEST EAX,EAX
SETG AL
MOVZX EAX,AL
MOV dword ptr [ESI + 0x28],EAX
JMP 0x0002d43e
MOV ECX,dword ptr [ESP + 0x40]
MOV EDX,dword ptr [ESP + 0x3c]
LEA EAX,[EBX + 0xfffcc686]
CALL 0x0002bed0
TEST EAX,EAX
SETNZ AL
MOVZX EAX,AL
JMP 0x0002ed1d
MOV EAX,dword ptr [ESP + 0x28]
TEST EDX,EDX
LEA ECX,[EBX + 0xfffca57e]
MOV dword ptr [ESP + 0x8],EAX
LEA EAX,[EBX + 0xfffcc71e]
CMOVZ EAX,ECX
JMP 0x0002fa3b
LEA EAX,[EBX + 0xfffce48c]
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
CMP dword ptr [ESI + 0xd8],0x0
JNZ 0x000305be
MOV EAX,dword ptr [ESI + 0xe4]
CMP EAX,0x1
JNZ 0x0002f049
MOV dword ptr [ESI],0x2807
JMP 0x0002d320
SUB ESP,0xc
PUSH EAX
CALL 0x0001c2f0
MOV EBP,dword ptr [ESI + 0x48]
MOV dword ptr [ESP],EBP
CALL 0x00014440
POP EDX
POP ECX
PUSH EAX
PUSH EBP
CALL 0x0001d300
POP EBP
PUSH dword ptr [ESI + 0x48]
CALL 0x0001d220
JMP 0x0002ea71
SUB ESP,0x8
LEA EAX,[EBX + 0xfffcc8e1]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002db48
SUB ESP,0xc
PUSH dword ptr [EDI + 0x110]
CALL 0x0001ca50
MOV dword ptr [ESI + 0x3c],EAX
MOV EBP,EAX
MOV dword ptr [EAX],0x1
LEA EAX,[EBX + 0xfffcc5c4]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
MOV dword ptr [EBP + 0x4],EAX
LEA EAX,[EBX + 0xfffcc5d3]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
ADD ESP,0xc
PUSH 0x1
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
ADD ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
JMP 0x0002f3ea
LEA EAX,[EDI + 0x110]
MOV ECX,0x21
LEA EDX,[EBX + 0xfffce2f4]
CALL 0x00029500
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce318]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002ecd0
SUB ESP,0xc
LEA EAX,[EBX + 0xfffce680]
JMP 0x0002dba9
MOV dword ptr [EDI + 0x100],0x1
JMP 0x0002e918
LEA EDX,[EAX + -0x4]
MOV dword ptr [ESI + 0xa0],EDX
JMP 0x0002f788
MOV EAX,dword ptr [EDI + 0x128]
LEA ECX,[EBX + 0xfffcd1d5]
LEA EDX,[EAX + 0x34]
ADD EAX,0x8
CALL 0x0002aae0
SUB ESP,0x8
MOV dword ptr [ESI + 0xb8],EAX
LEA EAX,[EBX + 0xfffce618]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
ADD ESP,0x10
MOV dword ptr [EDI + 0x12c],0x0
JMP 0x0002e0c6
SUB ESP,0xc
LEA EAX,[EBX + 0xfffcc7f8]
PUSH EAX
CALL 0x0001caa0
ADD ESP,0x10
MOV dword ptr [EBP + 0x4],EAX
MOV EBP,dword ptr [ESI + 0x3c]
MOV dword ptr [EBP + 0x8],0x0
JMP 0x0002fa14
MOV dword ptr [EDI + 0x100],0x1
JMP 0x0002e8c8
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce78c]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV dword ptr [EDI + 0x174],0x1
SUB ESP,0x8
PUSH 0x2c
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
MOV dword ptr [ESP + 0x18],EAX
POP ECX
POP EBP
PUSH 0x15
JMP 0x0002f24e
SUB ESP,0xc
PUSH EAX
CALL 0x0001c2f0
POP EAX
POP EDX
PUSH 0x1
PUSH 0x0
XOR ECX,ECX
LEA EDX,[EBX + 0xfffcc5de]
MOV EAX,EDI
CALL 0x00034b00
MOV dword ptr [ESI],0x0
ADD ESP,0x10
JMP 0x0002d320
MOV dword ptr [EDI + 0x100],0x1
JMP 0x0002d72e
LEA EAX,[EDI + 0x110]
MOV ECX,0x20
LEA EDX,[EBX + 0xfffce338]
MOV dword ptr [ESP + 0x8],EAX
CALL 0x00029500
MOV EDX,dword ptr [ESI + 0x64]
SUB ESP,0xc
PUSH EDX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
MOV ECX,EAX
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00029500
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,0x3
LEA EDX,[EBX + 0xfffcc71c]
CALL 0x00029500
JMP 0x0002f587
LEA EAX,[EDI + 0x110]
LEA EDX,[EBX + 0xfffce338]
MOV ECX,0x20
MOV dword ptr [ESP + 0x8],EAX
CALL 0x00029500
MOV ECX,dword ptr [ESI + 0x9c]
MOV EDX,dword ptr [ESI + 0x90]
MOV EAX,dword ptr [ESP + 0x8]
CALL 0x00029500
MOV EAX,dword ptr [ESP + 0x8]
MOV ECX,0xe
LEA EDX,[EBX + 0xfffcc6c2]
CALL 0x00029500
JMP 0x0002f67f
SUB ESP,0xc
PUSH dword ptr [EDI + 0x110]
CALL 0x0001ca50
MOV dword ptr [ESI + 0x3c],EAX
MOV dword ptr [EAX],0x0
MOV dword ptr [ESP + 0x18],EAX
LEA EAX,[EBX + 0xfffcc720]
MOV dword ptr [ESP],EAX
CALL 0x0001caa0
MOV EDX,dword ptr [ESP + 0x18]
MOV dword ptr [EDX + 0x4],EAX
POP ECX
POP EAX
LEA EAX,[EBX + 0xfffcc733]
PUSH dword ptr [ESI + 0x64]
PUSH EAX
CALL 0x0001d000
ADD ESP,0xc
PUSH 0x0
PUSH EAX
PUSH dword ptr [ESI + 0x3c]
CALL 0x0001ce70
ADD ESP,0xc
PUSH 0x0
PUSH 0x0
PUSH dword ptr [ESI + 0x3c]
CALL 0x000675f0
ADD ESP,0x10
JMP 0x0002dd4a
SUB ESP,0xc
LEA EDX,[EBX + 0xfffcc8db]
LEA ECX,[EBX + 0xfff97110]
PUSH 0x0
CALL 0x0002ab60
ADD ESP,0x10
MOV EDX,EAX
MOV dword ptr [ESI + 0xb8],EAX
JMP 0x0002f2a6
SUB ESP,0xc
LEA ECX,[EBX + 0xfff97110]
LEA EDX,[EBX + 0xfffcc8cc]
PUSH 0x0
JMP 0x0002f28b
MOV byte ptr [ESP + 0x8],DL
SUB ESP,0xc
LEA EAX,[ESP + 0x4c]
PUSH EAX
LEA EAX,[ESI + 0x64]
PUSH EAX
LEA EAX,[ESI + 0x54]
PUSH EAX
LEA EAX,[ESI + 0x60]
PUSH EAX
PUSH dword ptr [ESI + 0xbc]
CALL 0x00051ad0
ADD ESP,0x20
MOV dword ptr [ESI + 0x50],EAX
TEST EAX,EAX
JZ 0x00030219
MOVZX EDX,byte ptr [ESP + 0x8]
MOV dword ptr [ESI + 0x58],EDX
CMP EBP,0x3
JZ 0x0002fbb1
JMP 0x0002fb9e
SUB ESP,0xc
PUSH EAX
CALL 0x00052ed0
ADD ESP,0xc
PUSH EAX
LEA EAX,[EBX + 0xfffce044]
PUSH EAX
PUSH EDI
CALL 0x00026c00
MOV dword ptr [ESP],EBP
CALL 0x00052ed0
MOV EBP,EAX
POP EAX
PUSH dword ptr [ESI + 0xbc]
CALL 0x00063170
ADD ESP,0xc
PUSH EBP
PUSH EAX
LEA EAX,[EBX + 0xfffce068]
PUSH EAX
CALL 0x0001d000
MOV EBP,EAX
MOV dword ptr [ESP],EAX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,EBP
MOV ECX,EAX
LEA EAX,[EDI + 0x110]
CALL 0x00029500
SUB ESP,0xc
PUSH EBP
CALL 0x0001d220
MOV dword ptr [ESI + 0x50],0x0
ADD ESP,0x10
JMP 0x0002eac1
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ESP + 0x18],0x0
JMP 0x0002df29
MOV EAX,EBP
CALL 0x000283a0
SUB ESP,0x8
PUSH EAX
MOV EBP,EAX
LEA EAX,[EBX + 0xfffce6c4]
PUSH EAX
CALL 0x0001d000
MOV EDX,EAX
MOV EAX,EDI
CALL 0x00027d60
MOV dword ptr [ESP],EBP
CALL 0x0001d220
MOV dword ptr [ESI],0x0
ADD ESP,0x10
JMP 0x0002d320
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI + 0x128]
CALL 0x000344e0
ADD ESP,0x10
JMP 0x0002f1f8
MOV EBP,dword ptr [EDI + 0x248]
SUB ESP,0x8
PUSH 0x96
PUSH EBP
CALL 0x00018b50
POP EDX
POP ECX
PUSH EBP
PUSH EAX
CALL 0x0006c310
ADD ESP,0x10
MOV dword ptr [EDI + 0x18c],EAX
TEST EAX,EAX
JZ 0x0003041e
SUB ESP,0x8
PUSH 0x97
PUSH dword ptr [EDI + 0x248]
CALL 0x000189a0
POP EDX
POP ECX
PUSH EAX
PUSH dword ptr [EDI + 0x194]
CALL 0x0006bfc0
MOV EDX,dword ptr [EDI + 0x18c]
ADD ESP,0xc
MOV dword ptr [EDI + 0x190],EAX
MOV dword ptr [EAX + 0x1c],EDX
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI + 0x128]
CALL 0x00034380
ADD ESP,0x10
JMP 0x0002f1e4
SUB ESP,0x4
PUSH 0x0
PUSH 0x0
PUSH dword ptr [EDI + 0x128]
CALL 0x000345d0
ADD ESP,0x10
JMP 0x0002f213
LEA EAX,[EBX + 0xfffd00b4]
PUSH EAX
LEA EAX,[EBX + 0xfffcbe47]
PUSH 0x2799
PUSH EAX
LEA EAX,[EBX + 0xfffcc7c3]
PUSH EAX
CALL 0x00014870
SUB ESP,0x4
LEA EAX,[EBX + 0xfffcc592]
PUSH dword ptr [ESP + 0x44]
PUSH EAX
PUSH EDI
CALL 0x00026c00
MOV EBP,dword ptr [ESP + 0x50]
POP EAX
PUSH dword ptr [ESI + 0xbc]
CALL 0x00063170
ADD ESP,0xc
PUSH EBP
PUSH EAX
LEA EAX,[EBX + 0xfffce01c]
PUSH EAX
CALL 0x0001d000
MOV EBP,EAX
MOV dword ptr [ESP],EAX
CALL 0x00014440
ADD ESP,0x10
MOV EDX,EBP
MOV ECX,EAX
LEA EAX,[EDI + 0x110]
CALL 0x00029500
SUB ESP,0xc
PUSH EBP
CALL 0x0001d220
ADD ESP,0x10
JMP 0x0002eac1
MOV EAX,dword ptr [EBP + 0x5]
SUB ESP,0xc
BSWAP EAX
PUSH EAX
CALL 0x0001c400
ADD ESP,0x10
MOV dword ptr [ESI + 0x84],EAX
TEST EAX,EAX
JS 0x0003056d
MOV ECX,dword ptr [ESI + 0x78]
LEA EDX,[EBP + 0x9]
MOV dword ptr [ESP + 0x10],EDX
SUB ECX,0x9
TEST EAX,EAX
JZ 0x00030479
XOR EBP,EBP
CMP ECX,0x3
JLE 0x00030328
MOV dword ptr [ESP + 0x8],ESI
MOV ESI,EDX
MOV dword ptr [ESP + 0xc],EDI
MOV EDI,ECX
JMP 0x00030309
LEA ESI,[ESI + EAX*0x1 + 0x4]
SUB EDI,EAX
SUB ESP,0xc
MOV EAX,dword ptr [ESI]
SUB EDI,0x4
BSWAP EAX
PUSH EAX
CALL 0x0001c400
ADD ESP,0x10
TEST EAX,EAX
JS 0x00030320
CMP EAX,EDI
JG 0x00030320
SUB EDI,EAX
LEA ESI,[ESI + EAX*0x1 + 0x4]
MOV EAX,dword ptr [ESP + 0x8]
ADD EBP,0x1
MOV EAX,dword ptr [EAX + 0x84]
CMP EAX,EBP
JLE 0x00030471
CMP EDI,0x3
JLE 0x00030320
MOV EAX,dword ptr [ESI]
SUB ESP,0xc
SUB EDI,0x4
BSWAP EAX
PUSH EAX
CALL 0x0001c400
ADD ESP,0x10
CMP EAX,EDI
JBE 0x000302c8
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce12c]
PUSH EAX
PUSH EDI
CALL 0x00026c00
ADD ESP,0x10
MOV dword ptr [ESI + 0x84],0x0
JMP 0x0002d7b9
LEA EAX,[EDI + 0x110]
MOV ECX,0x12
LEA EDX,[EBX + 0xfffcc768]
CALL 0x00029500
JMP 0x0002f587
MOV dword ptr [EBP + 0x10],0x0
JMP 0x0002fa5d
LEA EAX,[EDI + 0x110]
MOV ECX,0x3c
LEA EDX,[EBX + 0xfffce1f8]
CALL 0x00029500
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce238]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002ecd0
SUB ESP,0x8
LEA EAX,[EBX + 0xfffce274]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002ecd0
LEA EAX,[EDI + 0x110]
MOV ECX,0x18
LEA EDX,[EBX + 0xfffcc61e]
CALL 0x00029500
JMP 0x0002ecb8
SUB ESP,0xc
PUSH dword ptr [EDI + 0x248]
CALL 0x00062e90
ADD ESP,0x10
MOV dword ptr [EDI + 0x6a8],EAX
JMP 0x0002fc73
MOV EDX,dword ptr [EDI + 0x110]
CMP EAX,0x3
JZ 0x0003057a
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffcc7cd]
PUSH EAX
PUSH EDX
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002e7aa
LEA EAX,[EBX + 0xfffce710]
PUSH EBP
PUSH EBP
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002f1e4
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffce2a8]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
LEA EAX,[EDI + 0x110]
MOV ECX,0xf
LEA EDX,[EBX + 0xfffcc64e]
CALL 0x00029500
ADD ESP,0x10
JMP 0x0002ecd0
CALL 0x0006dad0
MOV ESI,dword ptr [ESP + 0x8]
MOV EDI,dword ptr [ESP + 0xc]
PUSH EDX
PUSH EAX
LEA EAX,[EBX + 0xfffcc5aa]
PUSH EAX
PUSH EDI
CALL 0x00026c00
ADD ESP,0x10
CMP dword ptr [ESI + 0x50],0x0
JZ 0x0002d7b9
XOR EAX,EAX
CMP dword ptr [ESI + 0x84],0x0
JLE 0x00030511
MOV dword ptr [ESP + 0x8],EDI
MOV EDI,dword ptr [ESP + 0x10]
MOV EBP,EAX
MOV EAX,dword ptr [EDI]
SUB ESP,0xc
BSWAP EAX
PUSH EAX
CALL 0x0001c400
ADD ESP,0x10
MOV EDX,EAX
MOV dword ptr [ESI + 0x94],EAX
CMP EAX,dword ptr [ESI + 0x54]
JNZ 0x000304ea
SUB ESP,0x4
PUSH EAX
MOV dword ptr [ESP + 0x14],EAX
LEA EAX,[EDI + 0x4]
PUSH dword ptr [ESI + 0x50]
PUSH EAX
CALL 0x000141c0
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JZ 0x0003062d
LEA EDI,[EDI + EDX*0x1 + 0x4]
SUB ESP,0xc
ADD EBP,0x1
MOV EAX,dword ptr [EDI]
BSWAP EAX
PUSH EAX
CALL 0x0001c400
ADD ESP,0x10
LEA EDI,[EDI + EAX*0x1 + 0x4]
CMP dword ptr [ESI + 0x84],EBP
JG 0x000304aa
MOV EDI,dword ptr [ESP + 0x8]
CMP dword ptr [ESI + 0x7c],0x0
JNZ 0x0002d7b9
LEA EAX,[EBX + 0xfffce178]
PUSH ECX
PUSH ECX
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
ADD ESP,0x10
MOV dword ptr [ESI + 0x84],0x0
JMP 0x0002d7b9
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffce430]
PUSH EAX
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
MOV EAX,dword ptr [ESI + 0xc0]
POP EDX
POP ECX
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL dword ptr [EAX + 0x10]
ADD ESP,0x10
JMP 0x0002e7aa
PUSH ECX
PUSH EAX
LEA EAX,[EBX + 0xfffce0f8]
JMP 0x00030331
PUSH EAX
PUSH EAX
LEA EAX,[EBX + 0xfffce400]
PUSH EAX
PUSH EDX
CALL 0x000628e0
ADD ESP,0x10
JMP 0x0002e7aa
PUSH EAX
PUSH EAX
PUSH dword ptr [ESI + 0xcc]
PUSH dword ptr [EDI + 0x110]
CALL 0x000628e0
POP EAX
PUSH dword ptr [ESI + 0xcc]
CALL 0x0001d220
MOV EAX,dword ptr [ESI + 0xe4]
ADD ESP,0x10
JMP 0x0002f049
MOV EAX,0x3d
CALL 0x00029d20
LEA EDX,[ESP + 0x48]
MOV ECX,0x4
MOV dword ptr [ESI + 0xb8],EAX
MOV dword ptr [ESP + 0x10],EAX
MOV dword ptr [ESP + 0x48],0x0
CALL 0x00029c40
MOV ECX,dword ptr [ESP + 0x10]
MOV EDX,dword ptr [ESI + 0xdc]
MOV EAX,dword ptr [ECX]
MOV dword ptr [ECX + 0x18],EAX
MOV ECX,dword ptr [ESI + 0xd8]
MOV EAX,dword ptr [ESI + 0xb8]
CALL 0x00029dc0
MOV EDX,dword ptr [ESI + 0xb8]
MOV EAX,EDI
CALL 0x00033b40
MOV EAX,dword ptr [ESI + 0xc0]
PUSH EDX
PUSH EDX
PUSH dword ptr [ESP + 0x14]
PUSH EAX
CALL dword ptr [EAX + 0x18]
ADD ESP,0x10
JMP 0x0002fce8
MOV dword ptr [ESP + 0x10],EDI
MOV EDI,dword ptr [ESP + 0x8]
PUSH EAX
LEA EAX,[EBX + 0xfffce14c]
PUSH EBP
PUSH EAX
PUSH EDI
CALL 0x00026c00
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ESI + 0x80],EBP
ADD ESP,0x10
MOV dword ptr [ESI + 0x7c],EAX
JMP 0x0002d7b9
MOV EAX,dword ptr [ESP + 0x8]
CMP EAX,dword ptr [EBX + 0x23c]
JNZ 0x0002ddec
JMP 0x0002f5cf
LEA EAX,[EBX + 0xfffd00b4]
PUSH EAX
LEA EAX,[EBX + 0xfffcbe47]
PUSH 0x2600
PUSH EAX
LEA EAX,[EBX + 0xfffcc65e]
PUSH EAX
CALL 0x00014870
LEA EAX,[EBX + 0xfffd00b4]
PUSH EAX
LEA EAX,[EBX + 0xfffcbe47]
PUSH 0x2763
PUSH EAX
LEA EAX,[EBX + 0xfffcc798]
PUSH EAX
CALL 0x00014870
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}\n\n" comment (function_definition "void __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0006dad0();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined1 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "void *pvVar14;" primitive_type (pointer_declarator "*pvVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "char **local_60;" primitive_type (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_2c [2];" primitive_type (pointer_declarator "*local_2c [2]" * (array_declarator "local_2c [2]" identifier [ number_literal ])) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2d23b;" (assignment_expression "uStack_14 = 0x2d23b" identifier = number_literal) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x1d0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x1d0)" identifier = (pointer_expression "*(int **)(param_1 + 0x1d0)" * (cast_expression "(int **)(param_1 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1d0)" ( (binary_expression "param_1 + 0x1d0" 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) ))))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" { (expression_statement "piVar8 = (int *)FUN_0001c990(1,0xe8);" (assignment_expression "piVar8 = (int *)FUN_0001c990(1,0xe8)" identifier = (cast_expression "(int *)FUN_0001c990(1,0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(1,0xe8)" identifier (argument_list "(1,0xe8)" ( number_literal , number_literal ))))) ;) (expression_statement "*(int **)(param_1 + 0x1d0) = piVar8;" (assignment_expression "*(int **)(param_1 + 0x1d0) = piVar8" (pointer_expression "*(int **)(param_1 + 0x1d0)" * (cast_expression "(int **)(param_1 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1d0)" ( (binary_expression "param_1 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (labeled_statement "LAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);" statement_identifier : (expression_statement "iVar7 = *(int *)(param_1 + 0xec);" (assignment_expression "iVar7 = *(int *)(param_1 + 0xec)" identifier = (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) ;)) (expression_statement "*(code **)(param_1 + 0x288) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x288) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x288)" * (cast_expression "(code **)(param_1 + 0x288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x288)" ( (binary_expression "param_1 + 0x288" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x338) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x338) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x338)" * (cast_expression "(code **)(param_1 + 0x338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x338)" ( (binary_expression "param_1 + 0x338" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x33c) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x33c) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x33c)" * (cast_expression "(code **)(param_1 + 0x33c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x33c)" ( (binary_expression "param_1 + 0x33c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x340) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x340) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x340)" * (cast_expression "(code **)(param_1 + 0x340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x340)" ( (binary_expression "param_1 + 0x340" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x344)" * (cast_expression "(code **)(param_1 + 0x344)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x360) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x360) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x360)" * (cast_expression "(code **)(param_1 + 0x360)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x360)" ( (binary_expression "param_1 + 0x360" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x364) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x364) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x364)" * (cast_expression "(code **)(param_1 + 0x364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x364)" ( (binary_expression "param_1 + 0x364" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b0)" * (cast_expression "(code **)(param_1 + 0x3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b0)" ( (binary_expression "param_1 + 0x3b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b4)" * (cast_expression "(code **)(param_1 + 0x3b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b4)" ( (binary_expression "param_1 + 0x3b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b8)" * (cast_expression "(code **)(param_1 + 0x3b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b8)" ( (binary_expression "param_1 + 0x3b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3d8)" * (cast_expression "(code **)(param_1 + 0x3d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3d8)" ( (binary_expression "param_1 + 0x3d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3dc)" * (cast_expression "(code **)(param_1 + 0x3dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3dc)" ( (binary_expression "param_1 + 0x3dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e0)" * (cast_expression "(code **)(param_1 + 0x3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e0)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e4)" * (cast_expression "(code **)(param_1 + 0x3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e4)" ( (binary_expression "param_1 + 0x3e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 1000) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 1000)" * (cast_expression "(code **)(param_1 + 1000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1000)" ( (binary_expression "param_1 + 1000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3ec)" * (cast_expression "(code **)(param_1 + 0x3ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3ec)" ( (binary_expression "param_1 + 0x3ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f0)" * (cast_expression "(code **)(param_1 + 0x3f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f4)" * (cast_expression "(code **)(param_1 + 0x3f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f4)" ( (binary_expression "param_1 + 0x3f4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar8[2] = 0;" (assignment_expression "piVar8[2] = 0" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xe] = 0;" (assignment_expression "piVar8[0xe] = 0" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xb] = 0;" (assignment_expression "piVar8[0xb] = 0" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x23)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002fadd:\n        *piVar8 = 0x246f;" statement_identifier : (expression_statement "*piVar8 = 0x246f;" (assignment_expression "*piVar8 = 0x246f" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar8[2] == 0)" ( (binary_expression "piVar8[2] == 0" (subscript_expression "piVar8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002dc2e:\n        *piVar8 = 0x247a;" statement_identifier : (expression_statement "*piVar8 = 0x247a;" (assignment_expression "*piVar8 = 0x247a" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" else (compound_statement "{\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" { (labeled_statement "LAB_0002d973:\n      piVar8[0xd] = 1;" statement_identifier : (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;)) }))) (labeled_statement "LAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);" statement_identifier : (expression_statement "FUN_0001c780(param_1 + 0x178);" (call_expression "FUN_0001c780(param_1 + 0x178)" identifier (argument_list "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))) ;)) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0002bdb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0002bdb0" (pointer_expression "*(code **)(param_1 + 0x344)" * (cast_expression "(code **)(param_1 + 0x344)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }" if (parenthesized_expression "(piVar8[0xd] == 0)" ( (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_000631b0(iVar7);" (assignment_expression "iVar7 = FUN_000631b0(iVar7)" identifier = (call_expression "FUN_000631b0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" { (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);" (call_expression "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11)" identifier (argument_list "(param_1,"Reading key file \"%.150s\"",uVar11)" ( identifier , (string_literal ""Reading key file \"%.150s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar7 = FUN_00052e80(piVar8[0x2f]);" (assignment_expression "iVar7 = FUN_00052e80(piVar8[0x2f])" identifier = (call_expression "FUN_00052e80(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" if (parenthesized_expression "((iVar7 == 9) || (iVar7 == 3))" ( (binary_expression "(iVar7 == 9) || (iVar7 == 3)" (parenthesized_expression "(iVar7 == 9)" ( (binary_expression "iVar7 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) ))) )) (compound_statement "{\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" { (expression_statement "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier = (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x18" identifier + number_literal) , (binary_expression "piVar8 + 0x15" identifier + number_literal) , (binary_expression "piVar8 + 0x19" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar8[0x14] = iVar5;" (assignment_expression "piVar8[0x14] = iVar5" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" { (expression_statement "piVar8[0x16] = (uint)(iVar7 == 3);" (assignment_expression "piVar8[0x16] = (uint)(iVar7 == 3)" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) = (call_expression "(uint)(iVar7 == 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )))) ;) (if_statement "if (iVar7 != 3) goto LAB_0002fb9e;" if (parenthesized_expression "(iVar7 != 3)" ( (binary_expression "iVar7 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0002fb9e;" goto statement_identifier ;)) (goto_statement "goto LAB_0002fbb1;" goto statement_identifier ;) })) (labeled_statement "LAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" (call_expression "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0])" identifier (argument_list "(param_1,"Unable to load key (%s)",local_2c[0])" ( identifier , (string_literal ""Unable to load key (%s)"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" identifier = (subscript_expression "local_2c[0]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" identifier = (cast_expression "(char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" identifier (argument_list "("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" ( (string_literal ""Unable to load key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) }) (else_clause "else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" else (if_statement "if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" if (parenthesized_expression "(iVar7 == 10)" ( (binary_expression "iVar7 == 10" identifier == number_literal) )) (compound_statement "{\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }" { (expression_statement "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier = (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x18" identifier + number_literal) , (binary_expression "piVar8 + 0x15" identifier + number_literal) , (binary_expression "piVar8 + 0x19" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar8[0x14] = iVar7;" (assignment_expression "piVar8[0x14] = iVar7" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_00030219;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030219;" goto statement_identifier ;)) (expression_statement "piVar8[0x16] = 0;" (assignment_expression "piVar8[0x16] = 0" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Key file contains public key only",uVar11);" (call_expression "FUN_00026c00(param_1,"Key file contains public key only",uVar11)" identifier (argument_list "(param_1,"Key file contains public key only",uVar11)" ( identifier , (string_literal ""Key file contains public key only"" " string_content ") , identifier ))) ;)) (labeled_statement "LAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);" statement_identifier : (expression_statement "iVar7 = FUN_00051ea0(piVar8[0x2f],0);" (assignment_expression "iVar7 = FUN_00051ea0(piVar8[0x2f],0)" identifier = (call_expression "FUN_00051ea0(piVar8[0x2f],0)" identifier (argument_list "(piVar8[0x2f],0)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , number_literal )))) ;)) (expression_statement "piVar8[0x17] = iVar7;" (assignment_expression "piVar8[0x17] = iVar7" (subscript_expression "piVar8[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" else (compound_statement "{\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" { (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" identifier = (call_expression "FUN_00052ed0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);" (call_expression "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11)" identifier (argument_list "(param_1,"Unable to use this key file (%s)",uVar11)" ( identifier , (string_literal ""Unable to use this key file (%s)"" " string_content ") , identifier ))) ;) (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" identifier = (call_expression "FUN_00052ed0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar17 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar17 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" identifier = (cast_expression "(char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" identifier (argument_list "("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" ( (string_literal ""Unable to use key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = number_literal) ;) }))))) })) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1f] = 0;" (assignment_expression "piVar8[0x1f] = 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" if (parenthesized_expression "((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00061870(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00061870(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00061870()" identifier = (call_expression "FUN_00061870()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Pageant is running. Requesting keys."" " string_content ") ))) ;) (expression_statement "piVar8[0x1a] = 0x1000000;" (assignment_expression "piVar8[0x1a] = 0x1000000" (subscript_expression "piVar8[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8 + 0x1b) = 0xb;" (assignment_expression "*(undefined1 *)(piVar8 + 0x1b) = 0xb" (pointer_expression "*(undefined1 *)(piVar8 + 0x1b)" * (cast_expression "(undefined1 *)(piVar8 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0x1b)" ( (binary_expression "piVar8 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" identifier = (call_expression "FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" identifier (argument_list "(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" ( (binary_expression "piVar8 + 0x1a" identifier + number_literal) , number_literal , identifier , (binary_expression "piVar8 + 0x1e" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" * (cast_expression "(int *)(param_1 + 0x6d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d0)" ( (binary_expression "param_1 + 0x6d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" { (labeled_statement "LAB_0002eb58:\n          *piVar8 = 0x24d9;" statement_identifier : (expression_statement "*piVar8 = 0x24d9;" (assignment_expression "*piVar8 = 0x24d9" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d78a:\n        pcVar16 = local_2c[0];" statement_identifier : (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" identifier = (subscript_expression "local_2c[0]" identifier [ number_literal ])) ;)) (expression_statement "piVar8[0x1c] = (int)local_2c[0];" (assignment_expression "piVar8[0x1c] = (int)local_2c[0]" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = (cast_expression "(int)local_2c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_2c[0]" identifier [ number_literal ]))) ;) (if_statement "if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" if (parenthesized_expression "(((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f'))" ( (binary_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')" (parenthesized_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5))" ( (binary_expression "(local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)" (parenthesized_expression "(local_2c[0] == (char *)0x0)" ( (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar8[0x1e] < 5)" ( (binary_expression "piVar8[0x1e] < 5" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) < number_literal) ))) )) || (parenthesized_expression "(local_2c[0][4] != '\f')" ( (binary_expression "local_2c[0][4] != '\f'" (subscript_expression "local_2c[0][4]" (subscript_expression "local_2c[0]" identifier [ number_literal ]) [ number_literal ]) != (char_literal "'\f'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Failed to get reply from Pageant"" " string_content ") ))) ;) }) (else_clause "else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" else (compound_statement "{\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" { (expression_statement "uVar12 = *(uint *)(local_2c[0] + 5);" (assignment_expression "uVar12 = *(uint *)(local_2c[0] + 5)" identifier = (pointer_expression "*(uint *)(local_2c[0] + 5)" * (cast_expression "(uint *)(local_2c[0] + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c[0] + 5)" ( (binary_expression "local_2c[0] + 5" (subscript_expression "local_2c[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x21] = iVar7;" (assignment_expression "piVar8[0x21] = iVar7" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }" { (expression_statement "pcVar16 = "Pageant response contained a negative key count %d";" (assignment_expression "pcVar16 = "Pageant response contained a negative key count %d"" identifier = (string_literal ""Pageant response contained a negative key count %d"" " string_content ")) ;) }) (else_clause "else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" else (compound_statement "{\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" { (expression_statement "puVar22 = (uint *)(pcVar16 + 9);" (assignment_expression "puVar22 = (uint *)(pcVar16 + 9)" identifier = (cast_expression "(uint *)(pcVar16 + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 9)" ( (binary_expression "pcVar16 + 9" identifier + number_literal) )))) ;) (expression_statement "iVar5 = piVar8[0x1e] + -9;" (assignment_expression "iVar5 = piVar8[0x1e] + -9" identifier = (binary_expression "piVar8[0x1e] + -9" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar19 = puVar22;" (assignment_expression "puVar19 = puVar22" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" { (labeled_statement "LAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" (call_expression "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" identifier (argument_list "(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" ( identifier , (string_literal ""Pageant has %d SSH-2 keys"" " string_content ") , identifier , identifier ))) ;)) (if_statement "if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" if (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" { (expression_statement "uVar11 = extraout_ECX_00;" (assignment_expression "uVar11 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" if (parenthesized_expression "(0 < piVar8[0x21])" ( (binary_expression "0 < piVar8[0x21]" number_literal < (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) )) (compound_statement "{\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);" do (compound_statement "{\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  }" { (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x25] = sVar4;" (assignment_expression "piVar8[0x25] = sVar4" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" if (parenthesized_expression "((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0))" ( (binary_expression "(sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" (parenthesized_expression "(sVar4 == piVar8[0x15])" ( (binary_expression "sVar4 == piVar8[0x15]" identifier == (subscript_expression "piVar8[0x15]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" ( (comma_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0" (assignment_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" identifier = (call_expression "memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" identifier (argument_list "(puVar22 + 1,(void *)piVar8[0x14],sVar4)" ( (binary_expression "puVar22 + 1" identifier + number_literal) , (cast_expression "(void *)piVar8[0x14]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x14]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" { (expression_statement "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);" (call_expression "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0)" identifier (argument_list "(param_1,"Pageant key #%d matches configured key file",iVar7,0)" ( identifier , (string_literal ""Pageant key #%d matches configured key file"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "piVar8[0x20] = iVar7;" (assignment_expression "piVar8[0x20] = iVar7" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x1f] = (int)puVar22;" (assignment_expression "piVar8[0x1f] = (int)puVar22" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) = (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "puVar22 = (uint *)((int)puVar22 + sVar4 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + sVar4 + 4)" identifier = (cast_expression "(uint *)((int)puVar22 + sVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + sVar4 + 4)" ( (binary_expression "(int)puVar22 + sVar4 + 4" (binary_expression "(int)puVar22 + sVar4" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "puVar22 = (uint *)((int)puVar22 + iVar5 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + iVar5 + 4)" identifier = (cast_expression "(uint *)((int)puVar22 + iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + iVar5 + 4)" ( (binary_expression "(int)puVar22 + iVar5 + 4" (binary_expression "(int)puVar22 + iVar5" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar11 = extraout_ECX_01;" (assignment_expression "uVar11 = extraout_ECX_01" identifier = identifier) ;) }) while (parenthesized_expression "(iVar7 < piVar8[0x21])" ( (binary_expression "iVar7 < piVar8[0x21]" identifier < (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) )) ;) })) (if_statement "if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Configured key file not in Pageant"" " string_content ") , identifier , identifier ))) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) })) })) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = puVar22;" (assignment_expression "puVar20 = puVar22" identifier = identifier) ;) (if_statement "if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" if (parenthesized_expression "(3 < iVar5)" ( (binary_expression "3 < iVar5" number_literal < identifier) )) (compound_statement "{\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" { (while_statement "while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" { (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (iVar5 - 4U < uVar12) break;" if (parenthesized_expression "(iVar5 - 4U < uVar12)" ( (binary_expression "iVar5 - 4U < uVar12" (binary_expression "iVar5 - 4U" identifier - number_literal) < identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar20 = (uint *)((int)puVar20 + uVar12 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + uVar12 + 4)" identifier = (cast_expression "(uint *)((int)puVar20 + uVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + uVar12 + 4)" ( (binary_expression "(int)puVar20 + uVar12 + 4" (binary_expression "(int)puVar20 + uVar12" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *puVar20;" (assignment_expression "uVar3 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "iVar5 = ((iVar5 - 4U) - uVar12) + -4;" (assignment_expression "iVar5 = ((iVar5 - 4U) - uVar12) + -4" identifier = (binary_expression "((iVar5 - 4U) - uVar12) + -4" (parenthesized_expression "((iVar5 - 4U) - uVar12)" ( (binary_expression "(iVar5 - 4U) - uVar12" (parenthesized_expression "(iVar5 - 4U)" ( (binary_expression "iVar5 - 4U" identifier - number_literal) )) - identifier) )) + number_literal)) ;) (expression_statement "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);" (assignment_expression "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" identifier (argument_list "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);" (assignment_expression "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)uVar24 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar24 >> 0x20)" ( (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar18 = (int)uVar24;" (assignment_expression "iVar18 = (int)uVar24" identifier = (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar18 < 0) || (iVar5 < iVar18)) break;" if (parenthesized_expression "((iVar18 < 0) || (iVar5 < iVar18))" ( (binary_expression "(iVar18 < 0) || (iVar5 < iVar18)" (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar5 < iVar18)" ( (binary_expression "iVar5 < iVar18" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 - iVar18;" (assignment_expression "iVar5 = iVar5 - iVar18" identifier = (binary_expression "iVar5 - iVar18" identifier - identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = piVar8[0x21];" (assignment_expression "iVar7 = piVar8[0x21]" identifier = (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 <= iVar6) goto LAB_00030479;" if (parenthesized_expression "(iVar7 <= iVar6)" ( (binary_expression "iVar7 <= iVar6" identifier <= identifier) )) (goto_statement "goto LAB_00030479;" goto statement_identifier ;)) (expression_statement "puVar20 = (uint *)((int)puVar20 + iVar18 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + iVar18 + 4)" identifier = (cast_expression "(uint *)((int)puVar20 + iVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + iVar18 + 4)" ( (binary_expression "(int)puVar20 + iVar18 + 4" (binary_expression "(int)puVar20 + iVar18" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (if_statement "if (iVar5 < 4) break;" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "pcVar16 = "Pageant response was truncated";" (assignment_expression "pcVar16 = "Pageant response was truncated"" identifier = (string_literal ""Pageant response was truncated"" " string_content ")) ;) }))) (expression_statement "FUN_00026c00(param_1,pcVar16);" (call_expression "FUN_00026c00(param_1,pcVar16)" identifier (argument_list "(param_1,pcVar16)" ( identifier , identifier ))) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) }))) })) (labeled_statement "LAB_0002d7b9:\n      piVar8[0x13] = 0;" statement_identifier : (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar8[0xd] == 0)" ( (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" statement_identifier : (expression_statement "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" identifier = (call_expression "FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) )))) ;)) (expression_statement "*(int *)(param_1 + 0x250) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x250) = iVar7" (pointer_expression "*(int *)(param_1 + 0x250)" * (cast_expression "(int *)(param_1 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }" { (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH login name");" (assignment_expression "uVar11 = FUN_0001caa0("SSH login name")" identifier = (call_expression "FUN_0001caa0("SSH login name")" identifier (argument_list "("SSH login name")" ( (string_literal ""SSH login name"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001caa0("login as: ");" (assignment_expression "uVar11 = FUN_0001caa0("login as: ")" identifier = (call_expression "FUN_0001caa0("login as: ")" identifier (argument_list "("login as: ")" ( (string_literal ""login as: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,1);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,1)" identifier (argument_list "(piVar8[0xf],uVar11,1)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" statement_identifier : (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e8c8;" goto statement_identifier ;) }))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00034b00(0,1);" (call_expression "FUN_00034b00(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" * (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x250) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x250) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x250)" * (cast_expression "(undefined4 *)(param_1 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) }) (else_clause "else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" else (if_statement "if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" ( (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" { (expression_statement "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" identifier = (cast_expression "(char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Using username \"%s\".\r\n",iVar7)" identifier (argument_list "("Using username \"%s\".\r\n",iVar7)" ( (string_literal ""Using username \"%s\".\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) })))) (labeled_statement "LAB_0002d7f9:\n        piVar8[0x13] = 1;" statement_identifier : (expression_statement "piVar8[0x13] = 1;" (assignment_expression "piVar8[0x13] = 1" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[8] = 0;" (assignment_expression "piVar8[8] = 0" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xc] = 0;" (assignment_expression "piVar8[0xc] = 0" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[9] = 0;" (assignment_expression "piVar8[9] = 0" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" if (parenthesized_expression "(piVar8[0x1c] != 0)" ( (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" { (if_statement "if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }" { (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1d] = piVar8[0x1c] + 9;" (assignment_expression "piVar8[0x1d] = piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" else (compound_statement "{\n            piVar8[0x1d] = piVar8[0x1f];\n          }" { (expression_statement "piVar8[0x1d] = piVar8[0x1f];" (assignment_expression "piVar8[0x1d] = piVar8[0x1f]" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (subscript_expression "piVar8[0x1f]" identifier [ number_literal ])) ;) }))) })) (labeled_statement "LAB_0002d310:\n        *piVar8 = 0x25a0;" statement_identifier : (expression_statement "*piVar8 = 0x25a0;" (assignment_expression "*piVar8 = 0x25a0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n      piVar8[0x13] = 0;\n    }" else (compound_statement "{\n      piVar8[0x13] = 0;\n    }" { (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x344) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x344) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x344)" * (cast_expression "(undefined4 *)(param_1 + 0x344)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" if (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" { (expression_statement "FUN_0001d220(piVar8[0x18]);" (call_expression "FUN_0001d220(piVar8[0x18])" identifier (argument_list "(piVar8[0x18])" ( (subscript_expression "piVar8[0x18]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(piVar8[0x14]);" (call_expression "FUN_0001d220(piVar8[0x14])" identifier (argument_list "(piVar8[0x14])" ( (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(piVar8[0x19]);" (call_expression "FUN_0001d220(piVar8[0x19])" identifier (argument_list "(piVar8[0x19])" ( (subscript_expression "piVar8[0x19]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }" if (parenthesized_expression "(piVar8[0x1c] != 0)" ( (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_0001d220(piVar8[0x1c]);\n    }" { (expression_statement "FUN_0001d220(piVar8[0x1c]);" (call_expression "FUN_0001d220(piVar8[0x1c])" identifier (argument_list "(piVar8[0x1c])" ( (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) ))) ;) })) (if_statement "if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }" if (parenthesized_expression "((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0))" ( (binary_expression "(piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)" (parenthesized_expression "(piVar8[0xe] != 0)" ( (binary_expression "piVar8[0xe] != 0" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0xec) == 0)" ( (binary_expression "*(int *)(param_1 + 0xec) == 0" (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      FUN_000306b0(0);\n    }" { (expression_statement "FUN_000306b0(0);" (call_expression "FUN_000306b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (expression_statement "uVar11 = FUN_000612a0(FUN_00026aa0);" (assignment_expression "uVar11 = FUN_000612a0(FUN_00026aa0)" identifier = (call_expression "FUN_000612a0(FUN_00026aa0)" identifier (argument_list "(FUN_00026aa0)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x124) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x124) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_000373f0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_000373f0" (pointer_expression "*(code **)(param_1 + 0x3e4)" * (cast_expression "(code **)(param_1 + 0x3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e4)" ( (binary_expression "param_1 + 0x3e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_00034300;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_00034300" (pointer_expression "*(code **)(param_1 + 0x3b0)" * (cast_expression "(code **)(param_1 + 0x3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b0)" ( (binary_expression "param_1 + 0x3b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2d)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x128) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x128) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;" statement_identifier : (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 0x3ec)" * (cast_expression "(code **)(param_1 + 0x3ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3ec)" ( (binary_expression "param_1 + 0x3ec" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)(param_1 + 1000) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 1000)" * (cast_expression "(code **)(param_1 + 1000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1000)" ( (binary_expression "param_1 + 1000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_00037780;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_00037780" (pointer_expression "*(code **)(param_1 + 0x3f0)" * (cast_expression "(code **)(param_1 + 0x3f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_00037680;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_00037680" (pointer_expression "*(code **)(param_1 + 0x3f4)" * (cast_expression "(code **)(param_1 + 0x3f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f4)" ( (binary_expression "param_1 + 0x3f4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_00037580;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_00037580" (pointer_expression "*(code **)(param_1 + 0x3dc)" * (cast_expression "(code **)(param_1 + 0x3dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3dc)" ( (binary_expression "param_1 + 0x3dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_00035460;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_00035460" (pointer_expression "*(code **)(param_1 + 0x3e0)" * (cast_expression "(code **)(param_1 + 0x3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e0)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f8) = FUN_00034d80;" (assignment_expression "*(code **)(param_1 + 0x3f8) = FUN_00034d80" (pointer_expression "*(code **)(param_1 + 0x3f8)" * (cast_expression "(code **)(param_1 + 0x3f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_00033b60;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_00033b60" (pointer_expression "*(code **)(param_1 + 0x3d8)" * (cast_expression "(code **)(param_1 + 0x3d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3d8)" ( (binary_expression "param_1 + 0x3d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3fc) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x3fc) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x3fc)" * (cast_expression "(code **)(param_1 + 0x3fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3fc)" ( (binary_expression "param_1 + 0x3fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x400) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x400) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x400)" * (cast_expression "(code **)(param_1 + 0x400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0xf4) != 0)" ( (binary_expression "*(int *)(param_1 + 0xf4) != 0" (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" { (expression_statement "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" identifier (argument_list "(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) })) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0))" ( (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00027380(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00027380(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00027380()" identifier = (call_expression "FUN_00027380()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00035e50();" (call_expression "FUN_00035e50()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0))" ( (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 300) == 0)" ( (binary_expression "*(int *)(param_1 + 300) == 0" (pointer_expression "*(int *)(param_1 + 300)" * (cast_expression "(int *)(param_1 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x95)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = FUN_00018b50(uVar11,0x96);" (assignment_expression "uVar17 = FUN_00018b50(uVar11,0x96)" identifier = (call_expression "FUN_00018b50(uVar11,0x96)" identifier (argument_list "(uVar11,0x96)" ( identifier , number_literal )))) ;) (expression_statement "iVar7 = FUN_0006c310(uVar17,uVar11);" (assignment_expression "iVar7 = FUN_0006c310(uVar17,uVar11)" identifier = (call_expression "FUN_0006c310(uVar17,uVar11)" identifier (argument_list "(uVar17,uVar11)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x18c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x18c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""X11 forwarding not enabled: unable to initialise X display"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" else (compound_statement "{\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" { (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x97)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);" (assignment_expression "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" identifier = (call_expression "FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x194),uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x194)" * (cast_expression "(undefined4 *)(param_1 + 0x194)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(int *)(param_1 + 400) = iVar7;" (assignment_expression "*(int *)(param_1 + 400) = iVar7" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c)" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18c)" * (cast_expression "(undefined4 *)(param_1 + 0x18c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (expression_statement "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }))) })) (expression_statement "iVar7 = FUN_0002cea0(param_1);" (assignment_expression "iVar7 = FUN_0002cea0(param_1)" identifier = (call_expression "FUN_0002cea0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" { (expression_statement "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) })) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x16)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" { (expression_statement "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) })) (expression_statement "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (if_statement "if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" ( (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }" { (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" identifier = (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2b)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar11 = 0x14;" (assignment_expression "uVar11 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" else (compound_statement "{\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" { (labeled_statement "LAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" statement_identifier : (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" identifier = (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;)) (expression_statement "uVar11 = 0x15;" (assignment_expression "uVar11 = 0x15" identifier = number_literal) ;) }))) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" if (parenthesized_expression "((local_64 == (int *)0x0) && (*pcVar16 == '\0'))" ( (binary_expression "(local_64 == (int *)0x0) && (*pcVar16 == '\0')" (parenthesized_expression "(local_64 == (int *)0x0)" ( (binary_expression "local_64 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" else (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002f2ad:\n        *piVar8 = 0x2a90;" statement_identifier : (expression_statement "*piVar8 = 0x2a90;" (assignment_expression "*piVar8 = 0x2a90" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x104) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x104) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x108) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x108) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x108)" * (cast_expression "(undefined4 *)(param_1 + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x144) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x144) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x144)" * (cast_expression "(undefined4 *)(param_1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x148) != 0)" ( (binary_expression "*(int *)(param_1 + 0x148) != 0" (pointer_expression "*(int *)(param_1 + 0x148)" * (cast_expression "(int *)(param_1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" { (expression_statement "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x14c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14c) != 0" (pointer_expression "*(int *)(param_1 + 0x14c)" * (cast_expression "(int *)(param_1 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0003a8b0(param_1,0xc);\n      }" { (expression_statement "FUN_0003a8b0(param_1,0xc);" (call_expression "FUN_0003a8b0(param_1,0xc)" identifier (argument_list "(param_1,0xc)" ( identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" { (expression_statement "FUN_0001a2d0(*(int *)(param_1 + 0x14));" (call_expression "FUN_0001a2d0(*(int *)(param_1 + 0x14))" identifier (argument_list "(*(int *)(param_1 + 0x14))" ( (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0002db95:\n      *piVar8 = 0x2abd;" statement_identifier : (expression_statement "*piVar8 = 0x2abd;" (assignment_expression "*piVar8 = 0x2abd" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)FUN_0001c990(1,0x5c);" (assignment_expression "piVar9 = (int *)FUN_0001c990(1,0x5c)" identifier = (cast_expression "(int *)FUN_0001c990(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(1,0x5c)" identifier (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*(int **)(param_1 + 0x128) = piVar9;" (assignment_expression "*(int **)(param_1 + 0x128) = piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar9 = param_1;" (assignment_expression "*piVar9 = param_1" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "FUN_0002c3f0();" (call_expression "FUN_0002c3f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" if (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }" { (expression_statement "iVar7 = FUN_0002aae0();" (assignment_expression "iVar7 = FUN_0002aae0()" identifier = (call_expression "FUN_0002aae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Opening session as main channel"" " string_content ") ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(param_1 + 300) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 0" (pointer_expression "*(undefined4 *)(param_1 + 300)" * (cast_expression "(undefined4 *)(param_1 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" else (compound_statement "{\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" { (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2f)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier = (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");" (call_expression "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , identifier , identifier , (string_literal ""main channel"" " string_content ") ))) ;) (expression_statement "*(undefined4 *)(param_1 + 300) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 1" (pointer_expression "*(undefined4 *)(param_1 + 300)" * (cast_expression "(undefined4 *)(param_1 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002e0c6:\n    *piVar8 = 0x2a03;" statement_identifier : (expression_statement "*piVar8 = 0x2a03;" (assignment_expression "*piVar8 = 0x2a03" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 == 0x27b6)" ( (binary_expression "iVar7 == 0x27b6" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" { (if_statement "if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" { (labeled_statement "LAB_0002d664:\n      *piVar8 = 0x27b6;" statement_identifier : (expression_statement "*piVar8 = 0x27b6;" (assignment_expression "*piVar8 = 0x27b6" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar4 = piVar8[0x32];" (assignment_expression "sVar4 = piVar8[0x32]" identifier = (subscript_expression "piVar8[0x32]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" if (parenthesized_expression "((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0))" ( (binary_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" (parenthesized_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1]))" ( (binary_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])" (parenthesized_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06'))" ( (binary_expression "(local_34 == sVar4 + 2) && (*local_30 == '\x06')" (parenthesized_expression "(local_34 == sVar4 + 2)" ( (binary_expression "local_34 == sVar4 + 2" identifier == (binary_expression "sVar4 + 2" identifier + number_literal)) )) && (parenthesized_expression "(*local_30 == '\x06')" ( (binary_expression "*local_30 == '\x06'" (pointer_expression "*local_30" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(sVar4 == (int)local_30[1])" ( (binary_expression "sVar4 == (int)local_30[1]" identifier == (cast_expression "(int)local_30[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_30[1]" identifier [ number_literal ]))) ))) )) && (parenthesized_expression "(iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" identifier = (call_expression "memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" identifier (argument_list "(local_30 + 2,(void *)piVar8[0x33],sVar4)" ( (binary_expression "local_30 + 2" identifier + number_literal) , (cast_expression "(void *)piVar8[0x33]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x33]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0xc))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0xc)" * (pointer_expression "*(code **)(piVar8[0x30] + 0xc)" * (cast_expression "(code **)(piVar8[0x30] + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0xc)" ( (binary_expression "piVar8[0x30] + 0xc" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(param_1 + 0x6a4)" * (cast_expression "(undefined4 *)(param_1 + 0x6a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a4)" ( (binary_expression "param_1 + 0x6a4" identifier + number_literal) )))) , (binary_expression "piVar8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }" { (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x1c))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x1c)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x1c)" * (cast_expression "(code **)(piVar8[0x30] + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x1c)" ( (binary_expression "piVar8[0x30] + 0x1c" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x31)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x31" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }" { (expression_statement "piVar8[0x34] = 0;" (assignment_expression "piVar8[0x34] = 0" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x35] = 0;" (assignment_expression "piVar8[0x35] = 0" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x36] = 0;" (assignment_expression "piVar8[0x36] = 0" (subscript_expression "piVar8[0x36]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x37] = 0;" (assignment_expression "piVar8[0x37] = 0" (subscript_expression "piVar8[0x37]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002efad:\n            local_64 = piVar8 + 0x31;" statement_identifier : (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" identifier = (binary_expression "piVar8 + 0x31" identifier + number_literal)) ;)) (expression_statement "pcVar2 = *(code **)(piVar8[0x30] + 0x14);" (assignment_expression "pcVar2 = *(code **)(piVar8[0x30] + 0x14)" identifier = (pointer_expression "*(code **)(piVar8[0x30] + 0x14)" * (cast_expression "(code **)(piVar8[0x30] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x14)" ( (binary_expression "piVar8[0x30] + 0x14" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x28)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );" (assignment_expression "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" identifier = (call_expression "(*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier , (subscript_expression "piVar8[0x38]" identifier [ number_literal ]) , identifier , (binary_expression "piVar8 + 0x34" identifier + number_literal) , (binary_expression "piVar8 + 0x36" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = uVar12;" (assignment_expression "piVar8[0x39] = uVar12" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" if (parenthesized_expression "(uVar12 < 2)" ( (binary_expression "uVar12 < 2" identifier < number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication initialised"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" if (parenthesized_expression "(piVar8[0x36] != 0)" ( (binary_expression "piVar8[0x36] != 0" (subscript_expression "piVar8[0x36]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" { (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" identifier = (cast_expression "(undefined4 *)FUN_00029d20()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);" (call_expression "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x18))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x18)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x18)" * (cast_expression "(code **)(piVar8[0x30] + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x18)" ( (binary_expression "piVar8[0x30] + 0x18" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x36" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" { (labeled_statement "LAB_0002fcf7:\n                *piVar8 = 0x2807;" statement_identifier : (expression_statement "*piVar8 = 0x2807;" (assignment_expression "*piVar8 = 0x2807" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" else (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication initialisation failed"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x2c))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x2c)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x2c)" * (cast_expression "(code **)(piVar8[0x30] + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x2c)" ( (binary_expression "piVar8[0x30] + 0x2c" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar8[0x31]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "FUN_0001d220(piVar8[0x33]);" (call_expression "FUN_0001d220(piVar8[0x33])" identifier (argument_list "(piVar8[0x33])" ( (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                iVar7 = piVar8[0x39];\n              }" else (compound_statement "{\n                iVar7 = piVar8[0x39];\n              }" { (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) }))) }))) (labeled_statement "LAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" statement_identifier : (if_statement "if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication loop finished OK"" " string_content ") ))) ;) (expression_statement "piVar9 = (int *)FUN_00029d20();" (assignment_expression "piVar9 = (int *)FUN_00029d20()" identifier = (cast_expression "(int *)FUN_00029d20()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar8[0x2e] = (int)piVar9;" (assignment_expression "piVar8[0x2e] = (int)piVar9" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar9[6] = *piVar9;" (assignment_expression "piVar9[6] = *piVar9" (subscript_expression "piVar9[6]" identifier [ number_literal ]) = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,0x32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,0x32)" identifier (argument_list "(local_2c[0]._1_3_,0x32)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" identifier = (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;" (assignment_expression "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7" (subscript_expression "piVar8[0x32]" identifier [ number_literal ]) = (binary_expression "*(int *)piVar8[0x2e] - iVar7" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) - identifier)) ;) (expression_statement "piVar8[0x33] = iVar5 + iVar7;" (assignment_expression "piVar8[0x33] = iVar5 + iVar7" (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) = (binary_expression "iVar5 + iVar7" identifier + identifier)) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x24))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x24)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x24)" * (cast_expression "(code **)(piVar8[0x30] + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x24)" ( (binary_expression "piVar8[0x30] + 0x24" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar8[0x31]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" identifier = (cast_expression "(undefined4 *)FUN_00029d20()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x28))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x28)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x28)" * (cast_expression "(code **)(piVar8[0x30] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x28)" ( (binary_expression "piVar8[0x30] + 0x28" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],local_2c)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" identifier = (subscript_expression "piVar8[0x30]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" else (compound_statement "{\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" { (labeled_statement "LAB_0002e970:\n              iVar7 = piVar8[0x30];" statement_identifier : (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" identifier = (subscript_expression "piVar8[0x30]" identifier [ number_literal ])) ;)) })))) (expression_statement "local_60 = (char **)(piVar8 + 0x38);" (assignment_expression "local_60 = (char **)(piVar8 + 0x38)" identifier = (cast_expression "(char **)(piVar8 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8 + 0x38)" ( (binary_expression "piVar8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" identifier = (binary_expression "piVar8 + 0x31" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar7 + 0x10))(iVar7,local_60);" (call_expression "(**(code **)(iVar7 + 0x10))(iVar7,local_60)" (parenthesized_expression "(**(code **)(iVar7 + 0x10))" ( (pointer_expression "**(code **)(iVar7 + 0x10)" * (pointer_expression "*(code **)(iVar7 + 0x10)" * (cast_expression "(code **)(iVar7 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) )) (argument_list "(iVar7,local_60)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);" (call_expression "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x20))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x20)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x20)" * (cast_expression "(code **)(piVar8[0x30] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x20)" ( (binary_expression "piVar8[0x30] + 0x20" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],local_64)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier ))) ;) }) (else_clause "else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" else (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication failed to get credentials"" " string_content ") , identifier , identifier ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);" (call_expression "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x10))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x10)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x10)" * (cast_expression "(code **)(piVar8[0x30] + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x10)" ( (binary_expression "piVar8[0x30] + 0x10" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x38)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x38" identifier + number_literal) ))) ;) }))) }) (else_clause "else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" else (if_statement "if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" if (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI import name failed - Bad service name"" " string_content ") , number_literal , number_literal ))) ;) }) (else_clause "else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" else (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI import name failed"" " string_content ") , identifier , identifier ))) ;) }))))) }) (else_clause "else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" else (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication - wrong response from server"" " string_content ") ))) ;) }))) }) (else_clause "else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" else (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication request refused"" " string_content ") ))) ;) }))) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0002d2f8:\n    local_30 = (char *)0x0;" statement_identifier : (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 == 0) goto LAB_0002d310;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;)) (labeled_statement "LAB_0002d3e0:\n    iVar7 = param_1 + 0x178;" statement_identifier : (expression_statement "iVar7 = param_1 + 0x178;" (assignment_expression "iVar7 = param_1 + 0x178" identifier = (binary_expression "param_1 + 0x178" identifier + number_literal)) ;)) (expression_statement "iVar5 = FUN_0001c7f0(iVar7);" (assignment_expression "iVar5 = FUN_0001c7f0(iVar7)" identifier = (call_expression "FUN_0001c7f0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" if (parenthesized_expression "((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0))" ( (binary_expression "(iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" ( (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" { (expression_statement "pcVar16 = (char *)FUN_0001c990(iVar5,1);" (assignment_expression "pcVar16 = (char *)FUN_0001c990(iVar5,1)" identifier = (cast_expression "(char *)FUN_0001c990(iVar5,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar5,1)" identifier (argument_list "(iVar5,1)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0001c8e0(iVar7,pcVar16,iVar5);" (call_expression "FUN_0001c8e0(iVar7,pcVar16,iVar5)" identifier (argument_list "(iVar7,pcVar16,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar15 = PTR_stderr_000a4fa0;" (assignment_expression "puVar15 = PTR_stderr_000a4fa0" identifier = identifier) ;) (if_statement "if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 2) == 0)" ( (binary_expression "((byte)DAT_000a5b0c & 2) == 0" (parenthesized_expression "((byte)DAT_000a5b0c & 2)" ( (binary_expression "(byte)DAT_000a5b0c & 2" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }" { (expression_statement "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);" (call_expression "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , identifier , identifier ))) ;) }) (else_clause "else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" else (compound_statement "{\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" { (expression_statement "pcVar21 = pcVar16;" (assignment_expression "pcVar21 = pcVar16" identifier = identifier) ;) (if_statement "if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" { (do_statement "do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);" do (compound_statement "{\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          }" { (expression_statement "cVar1 = *pcVar21;" (assignment_expression "cVar1 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) (if_statement "if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" if (parenthesized_expression "((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))))" ( (binary_expression "(cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" (parenthesized_expression "(cVar1 != '\r')" ( (binary_expression "cVar1 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" ( (parenthesized_expression "(cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))" ( (binary_expression "cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)" (binary_expression "cVar1 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) || (parenthesized_expression "(((int)cVar1 & 0x60U) != 0)" ( (binary_expression "((int)cVar1 & 0x60U) != 0" (parenthesized_expression "((int)cVar1 & 0x60U)" ( (binary_expression "(int)cVar1 & 0x60U" (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" { (expression_statement "fputc((int)cVar1,*(FILE **)puVar15);" (call_expression "fputc((int)cVar1,*(FILE **)puVar15)" identifier (argument_list "((int)cVar1,*(FILE **)puVar15)" ( (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "*(FILE **)puVar15" * (cast_expression "(FILE **)puVar15" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar21 != pcVar16 + iVar5)" ( (binary_expression "pcVar21 != pcVar16 + iVar5" identifier != (binary_expression "pcVar16 + iVar5" identifier + identifier)) )) ;) })) }))) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) })) (expression_statement "FUN_0001c7a0(iVar7);" (call_expression "FUN_0001c7a0(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" if (parenthesized_expression "(param_4[2] == 0x34)" ( (binary_expression "param_4[2] == 0x34" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Access granted")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Access granted"" " string_content ") ))) ;) (expression_statement "piVar8[0xe] = 1;" (assignment_expression "piVar8[0xe] = 1" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d9b1;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" if (parenthesized_expression "(param_4[2] == 0x33)" ( (binary_expression "param_4[2] == 0x33" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }" { (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = param_4[6];" (assignment_expression "iVar7 = param_4[6]" identifier = (subscript_expression "param_4[6]" identifier [ number_literal ])) ;) (if_statement "if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" if (parenthesized_expression "((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'))" ( (binary_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" (parenthesized_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0)" ( (binary_expression "*param_4 == iVar7 || *param_4 - iVar7 < 0" (binary_expression "*param_4 == iVar7" (pointer_expression "*param_4" * identifier) == identifier) || (binary_expression "*param_4 - iVar7 < 0" (binary_expression "*param_4 - iVar7" (pointer_expression "*param_4" * identifier) - identifier) < number_literal)) )) || (parenthesized_expression "(cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" ( (comma_expression "cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_4[5] + iVar7)" identifier = (pointer_expression "*(char *)(param_4[5] + iVar7)" * (cast_expression "(char *)(param_4[5] + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[5] + iVar7)" ( (binary_expression "param_4[5] + iVar7" (subscript_expression "param_4[5]" identifier [ number_literal ]) + identifier) ))))) , (comma_expression "param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "param_4[6] = iVar7 + 1" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "iVar7 + 1" identifier + number_literal)) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar7 = piVar8[1];" (assignment_expression "iVar7 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" { (if_statement "if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 - 2U < 2)" ( (binary_expression "iVar7 - 2U < 2" (binary_expression "iVar7 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }" { (if_statement "if (iVar7 == 2) {\n              FUN_00029500();\n            }" if (parenthesized_expression "(iVar7 == 2)" ( (binary_expression "iVar7 == 2" identifier == number_literal) )) (compound_statement "{\n              FUN_00029500();\n            }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused our key"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused public-key signature despite accepting key!"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 == 7)" ( (binary_expression "iVar7 == 7" identifier == number_literal) )) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused keyboard-interactive authentication"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 != 5)" ( (binary_expression "iVar7 != 5" identifier != number_literal) )) (compound_statement "{\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" { (if_statement "if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" if (parenthesized_expression "(iVar7 == 6)" ( (binary_expression "iVar7 == 6" identifier == number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Keyboard-interactive authentication failed"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" else (compound_statement "{\n              if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" { (if_statement "if (iVar7 != 4) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" if (parenthesized_expression "(iVar7 != 4)" ( (binary_expression "iVar7 != 4" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" { comment (expression_statement "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");" (call_expression "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" identifier (argument_list "("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" ( (string_literal ""s->type == AUTH_TYPE_PASSWORD"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Password authentication failed"" " string_content ") ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;" if (parenthesized_expression "((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))" ( (binary_expression "(piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" (parenthesized_expression "(piVar8[0x13] == 0)" ( (binary_expression "piVar8[0x13] == 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0" (assignment_expression "iVar7 = FUN_000189a0(uVar11,0x1e)" identifier = (call_expression "FUN_000189a0(uVar11,0x1e)" identifier (argument_list "(uVar11,0x1e)" ( identifier , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0002d7cb;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d7f9;" goto statement_identifier ;) })) }))) })))))))) })) }) (else_clause "else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" else (compound_statement "{\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Further authentication required"" " string_content ") ))) ;) }))) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[5] = iVar7;" (assignment_expression "piVar8[5] = iVar7" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[6] = iVar7;" (assignment_expression "piVar8[6] = iVar7" (subscript_expression "piVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);" (assignment_expression "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x26)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" { (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = (uint)(iVar7 != 0);" (assignment_expression "uVar12 = (uint)(iVar7 != 0)" identifier = (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )))) ;) })) (expression_statement "piVar8[7] = uVar12;" (assignment_expression "piVar8[7] = uVar12" (subscript_expression "piVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x27)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = FUN_0002bed0(), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_0002bed0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        piVar8[10] = 0;\n      }" { (expression_statement "piVar8[10] = 0;" (assignment_expression "piVar8[10] = 0" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" else (compound_statement "{\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x6a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x6a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x6a8)" * (cast_expression "(int *)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" { (expression_statement "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" identifier = (call_expression "FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) )))) ;) (expression_statement "*(int *)(param_1 + 0x6a8) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6a8) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6a8)" * (cast_expression "(int *)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));" (assignment_expression "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4))" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (call_expression "(uint)(0 < *(int *)(iVar7 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < *(int *)(iVar7 + 4))" ( (binary_expression "0 < *(int *)(iVar7 + 4)" number_literal < (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) )))) ;) }))) }) (else_clause "else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" else (compound_statement "{\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" { (if_statement "if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" if (parenthesized_expression "(piVar8[1] != 5)" ( (binary_expression "piVar8[1] != 5" (subscript_expression "piVar8[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" { (expression_statement "pcVar16 = "Strange packet received during authentication: type %d";" (assignment_expression "pcVar16 = "Strange packet received during authentication: type %d"" identifier = (string_literal ""Strange packet received during authentication: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" if (parenthesized_expression "(piVar8[5] != 0)" ( (binary_expression "piVar8[5] != 0" (subscript_expression "piVar8[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" { (if_statement "if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" if (parenthesized_expression "((piVar8[9] == 0) && (piVar8[0x21] != 0))" ( (binary_expression "(piVar8[9] == 0) && (piVar8[0x21] != 0)" (parenthesized_expression "(piVar8[9] == 0)" ( (binary_expression "piVar8[9] == 0" (subscript_expression "piVar8[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar8[0x21] != 0)" ( (binary_expression "piVar8[0x21] != 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);" (call_expression "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20])" identifier (argument_list "(param_1,"Trying Pageant key #%d",piVar8[0x20])" ( identifier , (string_literal ""Trying Pageant key #%d"" " string_content ") , (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" identifier = (pointer_expression "*(uint *)piVar8[0x1d]" * (cast_expression "(uint *)piVar8[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "iVar5 = piVar8[0x1d];" (assignment_expression "iVar5 = piVar8[0x1d]" identifier = (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x25] = iVar6;" (assignment_expression "piVar8[0x25] = iVar6" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = iVar5 + 4;" (assignment_expression "iVar7 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[0x22] = iVar7;" (assignment_expression "piVar8[0x22] = iVar7" (subscript_expression "piVar8[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x1d] = iVar7 + iVar6;" (assignment_expression "piVar8[0x1d] = iVar7 + iVar6" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "iVar7 + iVar6" identifier + identifier)) ;) (expression_statement "uVar12 = *(uint *)(iVar5 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar5 + 4)" identifier = (pointer_expression "*(uint *)(iVar5 + 4)" * (cast_expression "(uint *)(iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x26] = iVar7;" (assignment_expression "piVar8[0x26] = iVar7" (subscript_expression "piVar8[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x23] = piVar8[0x22] + 4;" (assignment_expression "piVar8[0x23] = piVar8[0x22] + 4" (subscript_expression "piVar8[0x23]" identifier [ number_literal ]) = (binary_expression "piVar8[0x22] + 4" (subscript_expression "piVar8[0x22]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" identifier = (pointer_expression "*(uint *)piVar8[0x1d]" * (cast_expression "(uint *)piVar8[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x27] = iVar7;" (assignment_expression "piVar8[0x27] = iVar7" (subscript_expression "piVar8[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x24] = piVar8[0x1d] + 4;" (assignment_expression "piVar8[0x24] = piVar8[0x1d] + 4" (subscript_expression "piVar8[0x24]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;" (assignment_expression "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1d] + 4 + iVar7" (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) + number_literal) + identifier)) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 3;" (assignment_expression "piVar8[1] = 3" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e2e0;" goto statement_identifier ;) })) (if_statement "if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0))" ( (binary_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)" (parenthesized_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0))" ( (binary_expression "(piVar8[0x14] != 0) && (piVar8[0x16] != 0)" (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0x16] != 0)" ( (binary_expression "piVar8[0x16] != 0" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(piVar8[8] == 0)" ( (binary_expression "piVar8[8] == 0" (subscript_expression "piVar8[8]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offered public key")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Offered public key"" " string_content ") ))) ;) (labeled_statement "LAB_0002f4f1:\n        *piVar8 = 0x26df;" statement_identifier : (expression_statement "*piVar8 = 0x26df;" (assignment_expression "*piVar8 = 0x26df" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) })) (if_statement "if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" if (parenthesized_expression "((piVar8[10] != 0) && (piVar8[0xb] == 0))" ( (binary_expression "(piVar8[10] != 0) && (piVar8[0xb] == 0)" (parenthesized_expression "(piVar8[10] != 0)" ( (binary_expression "piVar8[10] != 0" (subscript_expression "piVar8[10]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0xb] == 0)" ( (binary_expression "piVar8[0xb] == 0" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" { (expression_statement "piVar8[1] = 5;" (assignment_expression "piVar8[1] = 5" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xb] = 1;" (assignment_expression "piVar8[0xb] = 1" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = DAT_0007d228;" (assignment_expression "iVar7 = DAT_0007d228" identifier = identifier) ;) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" { (labeled_statement "LAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" statement_identifier : comment (expression_statement "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" (call_expression "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" identifier (argument_list "("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" ( (string_literal ""s->gsslib"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;)) })) (do_statement "do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);" do (compound_statement "{\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      }" { (expression_statement "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);" (assignment_expression "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" identifier = (call_expression "FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];" (assignment_expression "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1]" identifier = (subscript_expression "(*(undefined4 **)(param_1 + 0x6a8))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x6a8))" ( (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" * (cast_expression "(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" { (expression_statement "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);" (assignment_expression "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8)" identifier = (cast_expression "(int *)**(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_1 + 0x6a8)" * (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" * (cast_expression "(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) ))))))) ;) (if_statement "if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" if (parenthesized_expression "(iVar6 == *piVar9)" ( (binary_expression "iVar6 == *piVar9" identifier == (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" { (labeled_statement "LAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;" statement_identifier : (expression_statement "piVar8[0x30] = (int)piVar9;" (assignment_expression "piVar8[0x30] = (int)piVar9" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (goto_statement "goto LAB_0002d550;" goto statement_identifier ;) })) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" { (expression_statement "piVar9 = piVar9 + 0x15;" (assignment_expression "piVar9 = piVar9 + 0x15" identifier = (binary_expression "piVar9 + 0x15" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == iVar5) break;" if (parenthesized_expression "(iVar18 == iVar5)" ( (binary_expression "iVar18 == iVar5" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*piVar9 == iVar6) goto LAB_0002ebb0;" if (parenthesized_expression "(*piVar9 == iVar6)" ( (binary_expression "*piVar9 == iVar6" (pointer_expression "*piVar9" * identifier) == identifier) )) (goto_statement "goto LAB_0002ebb0;" goto statement_identifier ;)) })) })) (expression_statement "local_64 = (int *)((int)local_64 + 1);" (assignment_expression "local_64 = (int *)((int)local_64 + 1)" identifier = (cast_expression "(int *)((int)local_64 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 1)" ( (binary_expression "(int)local_64 + 1" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int *)iVar7 != local_64)" ( (binary_expression "(int *)iVar7 != local_64" (cast_expression "(int *)iVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (expression_statement "piVar9 = (int *)piVar8[0x30];" (assignment_expression "piVar9 = (int *)piVar8[0x30]" identifier = (cast_expression "(int *)piVar8[0x30]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x30]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;" statement_identifier : (if_statement "if (piVar9 == (int *)0x0) goto LAB_000301fa;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000301fa;" goto statement_identifier ;))) (if_statement "if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" if (parenthesized_expression "(piVar9[1] != 0)" ( (binary_expression "piVar9[1] != 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1])" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar9[1])" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (subscript_expression "piVar9[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Attempting GSSAPI authentication"" " string_content ") ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);" (call_expression "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 8))" ( (pointer_expression "**(code **)(piVar8[0x30] + 8)" * (pointer_expression "*(code **)(piVar8[0x30] + 8)" * (cast_expression "(code **)(piVar8[0x30] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 8)" ( (binary_expression "piVar8[0x30] + 8" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x32)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) ))) ;) (expression_statement "local_24 = 0x1000000;" (assignment_expression "local_24 = 0x1000000" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002d664;" goto statement_identifier ;) })) (if_statement "if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "((piVar8[7] != 0) && (piVar8[0xc] == 0))" ( (binary_expression "(piVar8[7] != 0) && (piVar8[0xc] == 0)" (parenthesized_expression "(piVar8[7] != 0)" ( (binary_expression "piVar8[7] != 0" (subscript_expression "piVar8[7]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0xc] == 0)" ( (binary_expression "piVar8[0xc] == 0" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" { (expression_statement "piVar8[1] = 6;" (assignment_expression "piVar8[1] = 6" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Attempting keyboard-interactive authentication"" " string_content ") ))) ;) (labeled_statement "LAB_0002e166:\n      *piVar8 = 0x284b;" statement_identifier : (expression_statement "*piVar8 = 0x284b;" (assignment_expression "*piVar8 = 0x284b" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(piVar8[6] == 0)" ( (binary_expression "piVar8[6] == 0" (subscript_expression "piVar8[6]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" { (expression_statement "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" identifier = (call_expression "FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" identifier (argument_list "("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" ( (string_literal ""No supported authentication methods available (server sent: %.*s)"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00034b00(0xe,0);" (call_expression "FUN_00034b00(0xe,0)" identifier (argument_list "(0xe,0)" ( number_literal , number_literal ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("SSH password")" identifier = (call_expression "FUN_0001caa0("SSH password")" identifier (argument_list "("SSH password")" ( (string_literal ""SSH password"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));" (assignment_expression "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" identifier = (call_expression "FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" identifier (argument_list "("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" ( (string_literal ""%s@%s\'s password: "" " string_content escape_sequence string_content ") , (pointer_expression "*(undefined4 *)(param_1 + 0x250)" * (cast_expression "(undefined4 *)(param_1 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" statement_identifier : (if_statement "if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002d68e:\n      *piVar8 = 0x28e8;" statement_identifier : (expression_statement "*piVar8 = 0x28e8;" (assignment_expression "*piVar8 = 0x28e8" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" { (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" ( (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" * (pointer_expression "*(int **)(iVar5 + 0x18)" * (cast_expression "(int **)(iVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent password")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent password"" " string_content ") ))) ;) (expression_statement "piVar8[1] = 4;" (assignment_expression "piVar8[1] = 4" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002dd1c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002ea6c:\n    FUN_0001c2f0(iVar5);" statement_identifier : (expression_statement "FUN_0001c2f0(iVar5);" (call_expression "FUN_0001c2f0(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;)) (labeled_statement "LAB_0002ea71:\n    FUN_00034b00(0xd,1);" statement_identifier : (expression_statement "FUN_00034b00(0xd,1);" (call_expression "FUN_00034b00(0xd,1)" identifier (argument_list "(0xd,1)" ( number_literal , number_literal ))) ;)) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 < 0x27b7)" ( (binary_expression "iVar7 < 0x27b7" identifier < number_literal) )) (compound_statement "{\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" { (if_statement "if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 == 0x2561)" ( (binary_expression "iVar7 == 0x2561" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" { (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002f3ea;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e8c8:\n      *piVar8 = 0x2561;" statement_identifier : (expression_statement "*piVar8 = 0x2561;" (assignment_expression "*piVar8 = 0x2561" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" if (parenthesized_expression "(iVar7 < 0x2562)" ( (binary_expression "iVar7 < 0x2562" identifier < number_literal) )) (compound_statement "{\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" { (if_statement "if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" if (parenthesized_expression "(iVar7 == 0x246f)" ( (binary_expression "iVar7 == 0x246f" identifier == number_literal) )) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fadd;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fadd;" goto statement_identifier ;)) (if_statement "if (param_4[2] != 6) goto LAB_0002dbfb;" if (parenthesized_expression "(param_4[2] != 6)" ( (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0002dbfb;" goto statement_identifier ;)) (expression_statement "piVar8[2] = 1;" (assignment_expression "piVar8[2] = 1" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d97a;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" if (parenthesized_expression "(iVar7 < 0x2470)" ( (binary_expression "iVar7 < 0x2470" identifier < number_literal) )) (compound_statement "{\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" { (if_statement "if (iVar7 == 0) goto LAB_0002d8d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d8d0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" if (parenthesized_expression "(iVar7 == 0x247a)" ( (binary_expression "iVar7 == 0x247a" identifier == number_literal) )) (compound_statement "{\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" { (if_statement "if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" { (if_statement "if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" if (parenthesized_expression "(param_4[2] != 6)" ( (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" { (expression_statement "pcVar16 = "Server refused service request";" (assignment_expression "pcVar16 = "Server refused service request"" identifier = (string_literal ""Server refused service request"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d973;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002dc2e;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x24d9) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x24d9)" ( (binary_expression "iVar7 != 0x24d9" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) goto LAB_0002dba0;" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002dba0;" goto statement_identifier ;)) (if_statement "if (0 < param_3) goto LAB_0002eb58;" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (goto_statement "goto LAB_0002eb58;" goto statement_identifier ;)) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(param_1 + 0x254)" * (cast_expression "(char **)(param_1 + 0x254)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x254)" ( (binary_expression "param_1 + 0x254" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0x1e] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x1e] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 600)" * (cast_expression "(int *)(param_1 + 600)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 600)" ( (binary_expression "param_1 + 600" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d78a;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" if (parenthesized_expression "(iVar7 == 0x2696)" ( (binary_expression "iVar7 == 0x2696" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" { (if_statement "if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" { (labeled_statement "LAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";" statement_identifier : (expression_statement "pcVar16 = "Unexpected data from server while waiting for agent response";" (assignment_expression "pcVar16 = "Unexpected data from server while waiting for agent response"" identifier = (string_literal ""Unexpected data from server while waiting for agent response"" " string_content ")) ;)) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (compound_statement "{\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002f388:\n        *piVar8 = 0x2696;" statement_identifier : (expression_statement "*piVar8 = 0x2696;" (assignment_expression "*piVar8 = 0x2696" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(param_1 + 0x254)" * (cast_expression "(char **)(param_1 + 0x254)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x254)" ( (binary_expression "param_1 + 0x254" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0x29] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x29] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 600)" * (cast_expression "(int *)(param_1 + 600)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 600)" ( (binary_expression "param_1 + 600" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];" statement_identifier : (expression_statement "piVar8[0x2d] = (int)local_2c[0];" (assignment_expression "piVar8[0x2d] = (int)local_2c[0]" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) = (cast_expression "(int)local_2c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_2c[0]" identifier [ number_literal ]))) ;)) (expression_statement "FUN_0001d220(piVar8[0x2c]);" (call_expression "FUN_0001d220(piVar8[0x2c])" identifier (argument_list "(piVar8[0x2c])" ( (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x2d];" (assignment_expression "iVar7 = piVar8[0x2d]" identifier = (subscript_expression "piVar8[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" { (if_statement "if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)))" ( (binary_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" (parenthesized_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e'))" ( (binary_expression "(piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')" (parenthesized_expression "(piVar8[0x29] < 9)" ( (binary_expression "piVar8[0x29] < 9" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) < number_literal) )) || (parenthesized_expression "(*(char *)(iVar7 + 4) != '\x0e')" ( (binary_expression "*(char *)(iVar7 + 4) != '\x0e'" (pointer_expression "*(char *)(iVar7 + 4)" * (cast_expression "(char *)(iVar7 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) != (char_literal "'\x0e'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" ( (comma_expression "uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (assignment_expression "uVar12 = *(uint *)(iVar7 + 5)" identifier = (pointer_expression "*(uint *)(iVar7 + 5)" * (cast_expression "(uint *)(iVar7 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 5)" ( (binary_expression "iVar7 + 5" identifier + number_literal) ))))) , (binary_expression "piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (binary_expression "piVar8[0x29] - 9U" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) - number_literal) < (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ))) )) (compound_statement "{\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" { (expression_statement "pcVar16 = "Pageant failed to answer challenge";" (assignment_expression "pcVar16 = "Pageant failed to answer challenge"" identifier = (string_literal ""Pageant failed to answer challenge"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sending Pageant\'s response"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar12 = *(uint *)(piVar8[0x2d] + 5);" (assignment_expression "uVar12 = *(uint *)(piVar8[0x2d] + 5)" identifier = (pointer_expression "*(uint *)(piVar8[0x2d] + 5)" * (cast_expression "(uint *)(piVar8[0x2d] + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2d] + 5)" ( (binary_expression "piVar8[0x2d] + 5" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);" (call_expression "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" identifier (argument_list "(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" ( (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) , (binary_expression "piVar8[0x2d] + 9" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) + number_literal) , (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" statement_identifier : (if_statement "if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }" { (expression_statement "iVar5 = piVar8[0x20];" (assignment_expression "iVar5 = piVar8[0x20]" identifier = (subscript_expression "piVar8[0x20]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x20] = iVar5 + 1;" (assignment_expression "piVar8[0x20] = iVar5 + 1" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }" if (parenthesized_expression "(piVar8[0x21] <= iVar5 + 1)" ( (binary_expression "piVar8[0x21] <= iVar5 + 1" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) <= (binary_expression "iVar5 + 1" identifier + number_literal)) )) (compound_statement "{\n          piVar8[9] = 1;\n        }" { (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" else (compound_statement "{\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" { (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) })))) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (if_statement "if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" if (parenthesized_expression "(0x2696 < iVar7)" ( (binary_expression "0x2696 < iVar7" number_literal < identifier) )) (compound_statement "{\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" { (if_statement "if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" if (parenthesized_expression "(iVar7 != 0x26df)" ( (binary_expression "iVar7 != 0x26df" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" { (if_statement "if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 == 0x2703)" ( (binary_expression "iVar7 == 0x2703" identifier == number_literal) )) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" { (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dd4a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d72e:\n          *piVar8 = 0x2703;" statement_identifier : (expression_statement "*piVar8 = 0x2703;" (assignment_expression "*piVar8 = 0x2703" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (if_statement "if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Offer of public key accepted"" " string_content ") ))) ;) (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" ( (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "strlen((char *)piVar8[0x19]);" (call_expression "strlen((char *)piVar8[0x19])" identifier (argument_list "((char *)piVar8[0x19])" ( (cast_expression "(char *)piVar8[0x19]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x19]" identifier [ number_literal ])) ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (while_statement "while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" while (parenthesized_expression "(piVar8[0x17] != 0)" ( (binary_expression "piVar8[0x17] != 0" (subscript_expression "piVar8[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" { (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH key passphrase");" (assignment_expression "uVar11 = FUN_0001caa0("SSH key passphrase")" identifier = (call_expression "FUN_0001caa0("SSH key passphrase")" identifier (argument_list "("SSH key passphrase")" ( (string_literal ""SSH key passphrase"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);" (assignment_expression "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" identifier = (call_expression "FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" identifier (argument_list "("Passphrase for key \"%.100s\": ",piVar8[0x19])" ( (string_literal ""Passphrase for key \"%.100s\": "" " string_content escape_sequence string_content escape_sequence string_content ") , (subscript_expression "piVar8[0x19]" identifier [ number_literal ]) )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" statement_identifier : (if_statement "if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002d72e;" goto statement_identifier ;) }))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 0) goto LAB_0002ea6c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier = (cast_expression "(char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" ( (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" * (pointer_expression "*(int **)(iVar5 + 0x18)" * (cast_expression "(int **)(iVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) + number_literal) )))) ))))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c)" identifier = (cast_expression "(int *)FUN_000509f0(iVar7,pcVar16,local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000509f0(iVar7,pcVar16,local_2c)" identifier (argument_list "(iVar7,pcVar16,local_2c)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" { (if_statement "if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;" if (parenthesized_expression "(local_64 == (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 == (int *)PTR_DAT_000a4fac" identifier == (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002f5cf;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;) })) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;" if (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" identifier != (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;)) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c)" identifier = (cast_expression "(int *)FUN_000509f0(iVar7,0,local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000509f0(iVar7,0,local_2c)" identifier (argument_list "(iVar7,0,local_2c)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" if (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" identifier != (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" { (labeled_statement "LAB_0002ddec:\n            local_60 = local_2c;" statement_identifier : (expression_statement "local_60 = local_2c;" (assignment_expression "local_60 = local_2c" identifier = identifier) ;)) (if_statement "if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" if (parenthesized_expression "(local_64 != (int *)0x0)" ( (binary_expression "local_64 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,1)" identifier (argument_list "(local_2c[0]._1_3_,1)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);" (assignment_expression "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" identifier = (call_expression "(**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" (parenthesized_expression "(**(code **)(*local_64 + 0xc))" ( (pointer_expression "**(code **)(*local_64 + 0xc)" * (pointer_expression "*(code **)(*local_64 + 0xc)" * (cast_expression "(code **)(*local_64 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 0xc)" ( (binary_expression "*local_64 + 0xc" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1],&local_30)" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) + number_literal) + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar7 = iVar7 + -4;\n              }" { (expression_statement "iVar7 = iVar7 + -4;" (assignment_expression "iVar7 = iVar7 + -4" identifier = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) })) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1)" identifier = (cast_expression "(undefined1 *)FUN_0001c990(iVar7,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar7,1)" identifier (argument_list "(iVar7,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }" { (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "*puVar13 = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*puVar13 = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" * (cast_expression "(undefined1 *)(param_1 + 0xe7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe7)" ( (binary_expression "param_1 + 0xe7" identifier + number_literal) ))))) ;) (expression_statement "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6)" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" * (cast_expression "(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe6)" ( (binary_expression "param_1 + 0xe6" identifier + number_literal) )))))) ;) (expression_statement "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4)" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "__dest = puVar13 + 4;" (assignment_expression "__dest = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" else (compound_statement "{\n                local_54 = 0;\n                __dest = puVar13;\n              }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "__dest = puVar13;" (assignment_expression "__dest = puVar13" identifier = identifier) ;) }))) (expression_statement "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" identifier (argument_list "(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" ( identifier , (cast_expression "(void *)(param_1 + 0xa4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))) , (pointer_expression "*(size_t *)(param_1 + 0xe4)" * (cast_expression "(size_t *)(param_1 + 0xe4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) ))) ;) (expression_statement "local_54 = local_54 + *(int *)(param_1 + 0xe4);" (assignment_expression "local_54 = local_54 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "local_54 + *(int *)(param_1 + 0xe4)" identifier + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);" (call_expression "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" identifier (argument_list "(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" ( (binary_expression "puVar13 + local_54" identifier + identifier) , (cast_expression "(void *)(((int *)piVar8[0x2e])[4] + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)piVar8[0x2e])[4] + 5)" ( (binary_expression "((int *)piVar8[0x2e])[4] + 5" (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ]) + number_literal) ))) , (binary_expression "*(int *)piVar8[0x2e] - 5" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) - number_literal) ))) ;) (if_statement "if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" if (parenthesized_expression "(iVar7 != local_54 + -5 + *(int *)piVar8[0x2e])" ( (binary_expression "iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]" identifier != (binary_expression "local_54 + -5 + *(int *)piVar8[0x2e]" (binary_expression "local_54 + -5" identifier + number_literal) + (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" { comment (expression_statement "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");" (call_expression "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" identifier (argument_list "("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" ( (string_literal ""p == sigdata_len"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);" (assignment_expression "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" identifier = (call_expression "(**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" (parenthesized_expression "(**(code **)(*local_64 + 0x2c))" ( (pointer_expression "**(code **)(*local_64 + 0x2c)" * (pointer_expression "*(code **)(*local_64 + 0x2c)" * (cast_expression "(code **)(*local_64 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 0x2c)" ( (binary_expression "*local_64 + 0x2c" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1],puVar13,iVar7,local_60)" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (expression_statement "FUN_0002bf40(local_30,uVar17,local_2c[0]);" (call_expression "FUN_0002bf40(local_30,uVar17,local_2c[0])" identifier (argument_list "(local_30,uVar17,local_2c[0])" ( identifier , identifier , (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "FUN_0001d220(uVar17);" (call_expression "FUN_0001d220(uVar17)" identifier (argument_list "(uVar17)" ( identifier ))) ;) (expression_statement "FUN_0001d220(puVar13);" (call_expression "FUN_0001d220(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent public key signature"" " string_content ") ))) ;) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*local_64 + 4))(local_64[1]);" (call_expression "(**(code **)(*local_64 + 4))(local_64[1])" (parenthesized_expression "(**(code **)(*local_64 + 4))" ( (pointer_expression "**(code **)(*local_64 + 4)" * (pointer_expression "*(code **)(*local_64 + 4)" * (cast_expression "(code **)(*local_64 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 4)" ( (binary_expression "*local_64 + 4" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1])" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(local_64[2]);" (call_expression "FUN_0001d220(local_64[2])" identifier (argument_list "(local_64[2])" ( (subscript_expression "local_64[2]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(local_64);" (call_expression "FUN_0001d220(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002f5cf:\n          FUN_00029500();" statement_identifier : (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;)) (expression_statement "strlen(local_2c[0]);" (call_expression "strlen(local_2c[0])" identifier (argument_list "(local_2c[0])" ( (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[1] = 2;" (assignment_expression "piVar8[1] = 2" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002f4f1;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" if (parenthesized_expression "(iVar7 == 0x25a0)" ( (binary_expression "iVar7 == 0x25a0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" { (if_statement "if (param_4 != (int *)0x0) goto LAB_0002d3e0;" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x2650) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x2650)" ( (binary_expression "iVar7 != 0x2650" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" { (if_statement "if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" { (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" ( (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,1)" identifier (argument_list "(local_2c[0]._1_3_,1)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) + number_literal) + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "piVar8[0x28] = iVar7;" (assignment_expression "piVar8[0x28] = iVar7" (subscript_expression "piVar8[0x28]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar7 = iVar7 + 4;\n        }" { (expression_statement "iVar7 = iVar7 + 4;" (assignment_expression "iVar7 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          piVar8[0x28] = iVar7 + -4;\n        }" else (compound_statement "{\n          piVar8[0x28] = iVar7 + -4;\n        }" { (expression_statement "piVar8[0x28] = iVar7 + -4;" (assignment_expression "piVar8[0x28] = iVar7 + -4" (subscript_expression "piVar8[0x28]" identifier [ number_literal ]) = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) }))) (expression_statement "iVar7 = iVar7 + 5 + piVar8[0x25];" (assignment_expression "iVar7 = iVar7 + 5 + piVar8[0x25]" identifier = (binary_expression "iVar7 + 5 + piVar8[0x25]" (binary_expression "iVar7 + 5" identifier + number_literal) + (subscript_expression "piVar8[0x25]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[0x2a] = iVar7 + 4;" (assignment_expression "piVar8[0x2a] = iVar7 + 4" (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]) = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1)" identifier = (cast_expression "(undefined1 *)FUN_0001c990(iVar7 + 8,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar7 + 8,1)" identifier (argument_list "(iVar7 + 8,1)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , number_literal ))))) ;) (expression_statement "piVar8[0x2c] = (int)puVar13;" (assignment_expression "piVar8[0x2c] = (int)puVar13" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab);" (assignment_expression "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab)" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0xab)" * (cast_expression "(undefined1 *)((int)piVar8 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xab)" ( (binary_expression "(int)piVar8 + 0xab" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);" (assignment_expression "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa)" (pointer_expression "*(char *)(piVar8[0x2c] + 1)" * (cast_expression "(char *)(piVar8[0x2c] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 1)" ( (binary_expression "piVar8[0x2c] + 1" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xaa)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0xaa)" * (cast_expression "(undefined2 *)((int)piVar8 + 0xaa)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xaa)" ( (binary_expression "(int)piVar8 + 0xaa" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);" (assignment_expression "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8)" (pointer_expression "*(char *)(piVar8[0x2c] + 2)" * (cast_expression "(char *)(piVar8[0x2c] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 2)" ( (binary_expression "piVar8[0x2c] + 2" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x2a] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x2a] >> 8)" ( (binary_expression "(uint)piVar8[0x2a] >> 8" (cast_expression "(uint)piVar8[0x2a]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x2a]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];" (assignment_expression "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a]" (pointer_expression "*(char *)(piVar8[0x2c] + 3)" * (cast_expression "(char *)(piVar8[0x2c] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 3)" ( (binary_expression "piVar8[0x2c] + 3" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[0x2b] = piVar8[0x2c] + 5;" (assignment_expression "piVar8[0x2b] = piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd;" (assignment_expression "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd" (pointer_expression "*(undefined1 *)(piVar8[0x2c] + 4)" * (cast_expression "(undefined1 *)(piVar8[0x2c] + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 4)" ( (binary_expression "piVar8[0x2c] + 4" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);" (assignment_expression "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97)" (pointer_expression "*(undefined1 *)piVar8[0x2b]" * (cast_expression "(undefined1 *)piVar8[0x2b]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]))) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0x97)" * (cast_expression "(undefined1 *)((int)piVar8 + 0x97)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0x97)" ( (binary_expression "(int)piVar8 + 0x97" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0x96)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0x96)" * (cast_expression "(undefined2 *)((int)piVar8 + 0x96)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0x96)" ( (binary_expression "(int)piVar8 + 0x96" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x25] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x25] >> 8)" ( (binary_expression "(uint)piVar8[0x25] >> 8" (cast_expression "(uint)piVar8[0x25]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x25]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x25]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x25]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = iVar7 + 4;" (assignment_expression "piVar8[0x2b] = iVar7 + 4" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);" (call_expression "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" identifier (argument_list "((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" ( (cast_expression "(void *)(iVar7 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))) , (cast_expression "(void *)piVar8[0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x22]" identifier [ number_literal ])) , (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = piVar8[0x25] + iVar7;" (assignment_expression "piVar8[0x2b] = piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);" (assignment_expression "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3)" (pointer_expression "*(undefined1 *)(piVar8[0x25] + iVar7)" * (cast_expression "(undefined1 *)(piVar8[0x25] + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x25] + iVar7)" ( (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0xa3)" * (cast_expression "(undefined1 *)((int)piVar8 + 0xa3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xa3)" ( (binary_expression "(int)piVar8 + 0xa3" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xa2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0xa2)" * (cast_expression "(undefined2 *)((int)piVar8 + 0xa2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xa2)" ( (binary_expression "(int)piVar8 + 0xa2" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x28] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x28] >> 8)" ( (binary_expression "(uint)piVar8[0x28] >> 8" (cast_expression "(uint)piVar8[0x28]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x28]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x28]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x28]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "pvVar14 = (void *)(iVar7 + 4);" (assignment_expression "pvVar14 = (void *)(iVar7 + 4)" identifier = (cast_expression "(void *)(iVar7 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" { (expression_statement "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*(undefined1 *)(iVar7 + 4)" * (cast_expression "(undefined1 *)(iVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" * (cast_expression "(undefined1 *)(param_1 + 0xe7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe7)" ( (binary_expression "param_1 + 0xe7" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" * (cast_expression "(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe6)" ( (binary_expression "param_1 + 0xe6" identifier + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4)" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "pvVar14 = (void *)(piVar8[0x2b] + 4);" (assignment_expression "pvVar14 = (void *)(piVar8[0x2b] + 4)" identifier = (cast_expression "(void *)(piVar8[0x2b] + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 4)" ( (binary_expression "piVar8[0x2b] + 4" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" identifier (argument_list "(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" ( identifier , (cast_expression "(void *)(param_1 + 0xa4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))) , (pointer_expression "*(size_t *)(param_1 + 0xe4)" * (cast_expression "(size_t *)(param_1 + 0xe4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) ))) ;) (expression_statement "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);" (assignment_expression "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" identifier = (cast_expression "(void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" ( (binary_expression "*(int *)(param_1 + 0xe4) + piVar8[0x2b]" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) + (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e];" (assignment_expression "iVar7 = *(int *)piVar8[0x2e]" identifier = (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])))) ;) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" identifier = (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);" (call_expression "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" identifier (argument_list "(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" ( identifier , (cast_expression "(void *)(iVar5 + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) ))) , (binary_expression "iVar7 - 5" identifier - number_literal) ))) ;) (expression_statement "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);" (assignment_expression "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" identifier = (cast_expression "(undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" ( (binary_expression "piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]" (binary_expression "piVar8[0x2b] + -5" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) + (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])))) )))) ;) (expression_statement "piVar8[0x2b] = (int)puVar13;" (assignment_expression "piVar8[0x2b] = (int)puVar13" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 1) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 1) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 1)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 2) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 2)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 3) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 3)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" identifier = (call_expression "FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" identifier (argument_list "(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" ( (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) , (binary_expression "piVar8[0x2a] + 4" (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]) + number_literal) , identifier , (binary_expression "piVar8 + 0x29" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" * (cast_expression "(int *)(param_1 + 0x6d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d0)" ( (binary_expression "param_1 + 0x6d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) goto LAB_0002f388;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002f388;" goto statement_identifier ;)) (goto_statement "goto LAB_0002e806;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d6ed;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e2e0:\n    *piVar8 = 0x2650;" statement_identifier : (expression_statement "*piVar8 = 0x2650;" (assignment_expression "*piVar8 = 0x2650" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 == 0x2917)" ( (binary_expression "iVar7 == 0x2917" identifier == number_literal) )) (compound_statement "{\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" { (if_statement "if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" { (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = "Server requested password change";" (assignment_expression "pcVar16 = "Server requested password change"" identifier = (string_literal ""Server requested password change"" " string_content ")) ;) (labeled_statement "joined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 == 0x3c)" ( (binary_expression "iVar7 == 0x3c" identifier == number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("New SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("New SSH password")" identifier = (call_expression "FUN_0001caa0("New SSH password")" identifier (argument_list "("New SSH password")" ( (string_literal ""New SSH password"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = local_30;" (assignment_expression "pcVar16 = local_30" identifier = identifier) ;) (if_statement "if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }" if (parenthesized_expression "(local_30 == (char *)0x0)" ( (binary_expression "local_30 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar16 = "";\n        }" { (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16)" identifier = (call_expression "FUN_0001d000("%.*s",local_2c[0],pcVar16)" identifier (argument_list "("%.*s",local_2c[0],pcVar16)" ( (string_literal ""%.*s"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(piVar8[0xf] + 0x10) = 1;" (assignment_expression "*(undefined4 *)(piVar8[0xf] + 0x10) = 1" (pointer_expression "*(undefined4 *)(piVar8[0xf] + 0x10)" * (cast_expression "(undefined4 *)(piVar8[0xf] + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0xf] + 0x10)" ( (binary_expression "piVar8[0xf] + 0x10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");" (assignment_expression "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ")" identifier = (call_expression "FUN_0001caa0("Current password (blank for previously entered password): ")" identifier (argument_list "("Current password (blank for previously entered password): ")" ( (string_literal ""Current password (blank for previously entered password): "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "uVar11 = FUN_0001caa0("Enter new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Enter new password: ")" identifier = (call_expression "FUN_0001caa0("Enter new password: ")" identifier (argument_list "("Enter new password: ")" ( (string_literal ""Enter new password: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "uVar11 = FUN_0001caa0("Confirm new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Confirm new password: ")" identifier = (call_expression "FUN_0001caa0("Confirm new password: ")" identifier (argument_list "("Confirm new password: ")" ( (string_literal ""Confirm new password: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (while_statement "while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" statement_identifier : (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e5f0;" goto statement_identifier ;) }))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" { (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0002ea71;" goto statement_identifier ;) })) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" identifier = (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" if (parenthesized_expression "(**(char **)(*piVar9 + 8) != '\0')" ( (binary_expression "**(char **)(*piVar9 + 8) != '\0'" (pointer_expression "**(char **)(*piVar9 + 8)" * (pointer_expression "*(char **)(*piVar9 + 8)" * (cast_expression "(char **)(*piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 8)" ( (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" { (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" * (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" identifier = (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) ;) })) (expression_statement "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));" (assignment_expression "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" identifier = (call_expression "strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" identifier (argument_list "(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" ( (pointer_expression "*(char **)(piVar9[1] + 8)" * (cast_expression "(char **)(piVar9[1] + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9[1] + 8)" ( (binary_expression "piVar9[1] + 8" (subscript_expression "piVar9[1]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(char **)(piVar9[2] + 8)" * (cast_expression "(char **)(piVar9[2] + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9[2] + 8)" ( (binary_expression "piVar9[2] + 8" (subscript_expression "piVar9[2]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent new password")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent new password"" " string_content ") ))) ;) (labeled_statement "LAB_0002e515:\n        *piVar8 = 0x2999;" statement_identifier : (expression_statement "*piVar8 = 0x2999;" (assignment_expression "*piVar8 = 0x2999" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dd1c:\n    *piVar8 = 0x2917;" statement_identifier : (expression_statement "*piVar8 = 0x2917;" (assignment_expression "*piVar8 = 0x2917" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(0x2917 < iVar7)" ( (binary_expression "0x2917 < iVar7" number_literal < identifier) )) (compound_statement "{\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" { (if_statement "if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" if (parenthesized_expression "(iVar7 == 0x2a03)" ( (binary_expression "iVar7 == 0x2a03" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002e0c6;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002e0c6;" goto statement_identifier ;)) (if_statement "if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" if (parenthesized_expression "(param_4[2] - 0x5bU < 2)" ( (binary_expression "param_4[2] - 0x5bU < 2" (binary_expression "param_4[2] - 0x5bU" (subscript_expression "param_4[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }" { (expression_statement "iVar5 = FUN_00026ae0();" (assignment_expression "iVar5 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" if (parenthesized_expression "(iVar5 == *(int *)(iVar7 + 8))" ( (binary_expression "iVar5 == *(int *)(iVar7 + 8)" identifier == (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" { (if_statement "if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(param_4[2] == 0x5c)" ( (binary_expression "param_4[2] == 0x5c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "uVar11 = FUN_000283a0();" (assignment_expression "uVar11 = FUN_000283a0()" identifier = (call_expression "FUN_000283a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001d000("Server refused to open main channel: %s",uVar11);" (call_expression "FUN_0001d000("Server refused to open main channel: %s",uVar11)" identifier (argument_list "("Server refused to open main channel: %s",uVar11)" ( (string_literal ""Server refused to open main channel: %s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00061e70(*(undefined4 *)(param_1 + 0x110));" (call_expression "FUN_00061e70(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Opened main channel"" " string_content ") ))) ;) (goto_statement "goto LAB_0002da71;" goto statement_identifier ;) })) (expression_statement "pcVar16 = "Server\'s response to main channel open cited wrong channel number";" (assignment_expression "pcVar16 = "Server\'s response to main channel open cited wrong channel number"" identifier = (string_literal ""Server\'s response to main channel open cited wrong channel number"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" else (compound_statement "{\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" { (expression_statement "pcVar16 = "Server sent strange packet %d in response to main channel open request";" (assignment_expression "pcVar16 = "Server sent strange packet %d in response to main channel open request"" identifier = (string_literal ""Server sent strange packet %d in response to main channel open request"" " string_content ")) ;) }))) }) (else_clause "else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" else (compound_statement "{\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" { (if_statement "if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 < 0x2a04)" ( (binary_expression "iVar7 < 0x2a04" identifier < number_literal) )) (compound_statement "{\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" { (if_statement "if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 == 0x2956)" ( (binary_expression "iVar7 == 0x2956" identifier == number_literal) )) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" { (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e42a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e5f0:\n          *piVar8 = 0x2956;" statement_identifier : (expression_statement "*piVar8 = 0x2956;" (assignment_expression "*piVar8 = 0x2956" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" if (parenthesized_expression "(iVar7 == 0x2999)" ( (binary_expression "iVar7 == 0x2999" identifier == number_literal) )) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" { (if_statement "if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" { (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = "Server rejected new password";" (assignment_expression "pcVar16 = "Server rejected new password"" identifier = (string_literal ""Server rejected new password"" " string_content ")) ;) (goto_statement "goto joined_r0x0002e302;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e515;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d8a4:\n        *piVar8 = 0;" statement_identifier : (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" if (parenthesized_expression "(iVar7 != 0x2a90)" ( (binary_expression "iVar7 != 0x2a90" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" { (if_statement "if (iVar7 != 0x2abd) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x2abd)" ( (binary_expression "iVar7 != 0x2abd" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" { (expression_statement "pcVar16 = "Strange packet received: type %d";" (assignment_expression "pcVar16 = "Strange packet received: type %d"" identifier = (string_literal ""Strange packet received: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_00035a60();\n        }" { (expression_statement "FUN_00035a60();" (call_expression "FUN_00035a60()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0002db95;" goto statement_identifier ;) })) (if_statement "if (param_4 == (int *)0x0) goto LAB_0002f2ad;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f2ad;" goto statement_identifier ;)) (if_statement "if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" if (parenthesized_expression "(param_4[2] == 99)" ( (binary_expression "param_4[2] == 99" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Started a shell/command"" " string_content ") ))) ;) (goto_statement "goto LAB_0002db48;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" if (parenthesized_expression "(param_4[2] == 100)" ( (binary_expression "param_4[2] == 100" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }" { (if_statement "if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           )" ( (binary_expression "(*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" ( (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" ( (comma_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0'" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x15)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) , (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Primary command failed; attempting fallback"" " string_content ") ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x174) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x174) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x174)" * (cast_expression "(undefined4 *)(param_1 + 0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002feab;" goto statement_identifier ;) })) (expression_statement "pcVar16 = "Server refused to start a shell/command";" (assignment_expression "pcVar16 = "Server refused to start a shell/command"" identifier = (string_literal ""Server refused to start a shell/command"" " string_content ")) ;) }) (else_clause "else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" else (compound_statement "{\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" { (expression_statement "pcVar16 = "Unexpected response to shell/command request: packet type %d";" (assignment_expression "pcVar16 = "Unexpected response to shell/command request: packet type %d"" identifier = (string_literal ""Unexpected response to shell/command request: packet type %d"" " string_content ")) ;) }))) }))) (labeled_statement "LAB_0002dba9:\n    FUN_0001d000(pcVar16);" statement_identifier : (expression_statement "FUN_0001d000(pcVar16);" (call_expression "FUN_0001d000(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;)) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" if (parenthesized_expression "(iVar7 == 0x28a4)" ( (binary_expression "iVar7 == 0x28a4" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }" { (if_statement "if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" statement_identifier : (if_statement "if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (compound_statement "{\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" { (if_statement "if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" { (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" if (parenthesized_expression "(0 < piVar8[0x10])" ( (binary_expression "0 < piVar8[0x10]" number_literal < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) (compound_statement "{\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" { (do_statement "do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);" do (compound_statement "{\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar5 < piVar8[0x10])" ( (binary_expression "iVar5 < piVar8[0x10]" identifier < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0002f35a;" goto statement_identifier ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*piVar8 = 0x28a4;" (assignment_expression "*piVar8 = 0x28a4" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" else (compound_statement "{\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" { (if_statement "if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" if (parenthesized_expression "(iVar7 < 0x28a5)" ( (binary_expression "iVar7 < 0x28a5" identifier < number_literal) )) (compound_statement "{\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" { (if_statement "if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" if (parenthesized_expression "(iVar7 == 0x2807)" ( (binary_expression "iVar7 == 0x2807" identifier == number_literal) )) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fcf7;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fcf7;" goto statement_identifier ;)) (if_statement "if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" if (parenthesized_expression "(param_4[2] == 0x3d)" ( (binary_expression "param_4[2] == 0x3d" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 1) goto LAB_0002efad;" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0002efad;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f049;" goto statement_identifier ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication - bad server response"" " string_content ") ))) ;) (expression_statement "piVar8[0x39] = 4;" (assignment_expression "piVar8[0x39] = 4" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e970;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x284b) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x284b)" ( (binary_expression "iVar7 != 0x284b" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (if_statement "if (param_4[2] == 0x3c) goto LAB_0002eda0;" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0002eda0;" goto statement_identifier ;)) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[1] = 7;" (assignment_expression "piVar8[1] = 7" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xc] = 1;" (assignment_expression "piVar8[0xc] = 1" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e166;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" if (parenthesized_expression "(iVar7 != 0x28ca)" ( (binary_expression "iVar7 != 0x28ca" identifier != number_literal) )) (compound_statement "{\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" { (if_statement "if (iVar7 != 0x28e8) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x28e8)" ( (binary_expression "iVar7 != 0x28e8" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dc60;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d68e;" goto statement_identifier ;) })) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" { (if_statement "if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4[2] != 0x3c)" ( (binary_expression "param_4[2] != 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0002eda0:\n      FUN_000273d0();" statement_identifier : (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "iVar7 = FUN_00026ae0();" (assignment_expression "iVar7 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x10] = iVar7;" (assignment_expression "piVar8[0x10] = iVar7" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);" do (compound_statement "{\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = param_4[6];" (assignment_expression "iVar5 = param_4[6]" identifier = (subscript_expression "param_4[6]" identifier [ number_literal ])) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" if (parenthesized_expression "(*param_4 != iVar5 && -1 < *param_4 - iVar5)" ( (binary_expression "*param_4 != iVar5 && -1 < *param_4 - iVar5" (binary_expression "*param_4 != iVar5" (pointer_expression "*param_4" * identifier) != identifier) && (binary_expression "-1 < *param_4 - iVar5" number_literal < (binary_expression "*param_4 - iVar5" (pointer_expression "*param_4" * identifier) - identifier))) )) (compound_statement "{\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" { (expression_statement "bVar23 = *(char *)(param_4[5] + iVar5) != '\0';" (assignment_expression "bVar23 = *(char *)(param_4[5] + iVar5) != '\0'" identifier = (binary_expression "*(char *)(param_4[5] + iVar5) != '\0'" (pointer_expression "*(char *)(param_4[5] + iVar5)" * (cast_expression "(char *)(param_4[5] + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[5] + iVar5)" ( (binary_expression "param_4[5] + iVar5" (subscript_expression "param_4[5]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "param_4[6] = iVar5 + 1;" (assignment_expression "param_4[6] = iVar5 + 1" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (if_statement "if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" if (parenthesized_expression "(local_2c[0] == (char *)0x0)" ( (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" { (expression_statement "local_30 = s_<server_failed_to_send_prompt>__000a5120;" (assignment_expression "local_30 = s_<server_failed_to_send_prompt>__000a5120" identifier = (binary_expression "s_<server_failed_to_send_prompt>__000a5120" (binary_expression "s_<server_failed_to_send_prompt" identifier < identifier) > identifier)) ;) (expression_statement "local_2c[0] = (char *)0x20;" (assignment_expression "local_2c[0] = (char *)0x20" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30)" identifier = (call_expression "FUN_0001d000("%.*s",local_2c[0],local_30)" identifier (argument_list "("%.*s",local_2c[0],local_30)" ( (string_literal ""%.*s"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,bVar23);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,bVar23)" identifier (argument_list "(piVar8[0xf],uVar11,bVar23)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar7 < piVar8[0x10])" ( (binary_expression "iVar7 < piVar8[0x10]" identifier < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }" { (expression_statement "uVar11 = FUN_0001caa0("SSH server authentication");" (assignment_expression "uVar11 = FUN_0001caa0("SSH server authentication")" identifier = (call_expression "FUN_0001caa0("SSH server authentication")" identifier (argument_list "("SSH server authentication")" ( (string_literal ""SSH server authentication"" " string_content ") )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" else (compound_statement "{\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" { (expression_statement "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);" (assignment_expression "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48)" identifier = (call_expression "FUN_0001d000("SSH server: %.*s",local_3c,local_48)" identifier (argument_list "("SSH server: %.*s",local_3c,local_48)" ( (string_literal ""SSH server: %.*s"" " string_content ") , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" if (parenthesized_expression "(piVar8[0x10] == 0 && local_3c == 0)" ( (binary_expression "piVar8[0x10] == 0 && local_3c == 0" (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_3c == 0" identifier == number_literal)) )) (compound_statement "{\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }" { (if_statement "if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" { (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (goto_statement "goto LAB_0002fa3b;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" else (compound_statement "{\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" { (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (if_statement "if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar15 = &DAT_0006f2ee;\n        }" { (expression_statement "puVar15 = &DAT_0006f2ee;" (assignment_expression "puVar15 = &DAT_0006f2ee" identifier = (pointer_expression "&DAT_0006f2ee" & identifier)) ;) })) (labeled_statement "LAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" statement_identifier : (expression_statement "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" (assignment_expression "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" identifier = (call_expression "FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" identifier (argument_list "("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" ( (string_literal ""Using keyboard-interactive authentication.%s%.*s"" " string_content ") , identifier , identifier , identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar7 = FUN_000675f0(iVar7,0,0);" (assignment_expression "iVar7 = FUN_000675f0(iVar7,0,0)" identifier = (call_expression "FUN_000675f0(iVar7,0,0)" identifier (argument_list "(iVar7,0,0)" ( identifier , number_literal , number_literal )))) ;) (goto_statement "goto LAB_0002f51a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f35a:\n    *piVar8 = 0x28ca;" statement_identifier : (expression_statement "*piVar8 = 0x28ca;" (assignment_expression "*piVar8 = 0x28ca" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) }))) (labeled_statement "LAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid __regparm3 do_ssh2_authconn(Ssh_conflict ssh,uchar *in,int inlen,Packet *pktin)\n\n{\n  bufchain *ch;\n  void **ppvVar1;\n  int iVar2;\n  char cVar3;\n  uchar uVar4;\n  Conf *pCVar5;\n  code *pcVar6;\n  uint uVar7;\n  size_t sVar8;\n  size_t sVar9;\n  int iVar10;\n  Packet *pPVar11;\n  int *piVar12;\n  tree234 *ptVar13;\n  Filename *pFVar14;\n  uchar *puVar15;\n  uchar *sigblob_v;\n  ssh_channel *psVar16;\n  prompt_t **pppVar17;\n  prompts_t *ppVar18;\n  char *pcVar19;\n  int iVar20;\n  ulong uVar21;\n  uint uVar22;\n  undefined1 *puVar23;\n  void *pvVar24;\n  agent_pending_query *paVar25;\n  undefined *puVar26;\n  X11Display *pXVar27;\n  X11FakeAuth *pXVar28;\n  ssh_gss_liblist *psVar29;\n  int iVar30;\n  int padsize;\n  int padsize_00;\n  int extraout_ECX;\n  int extraout_ECX_00;\n  uint *extraout_EDX;\n  uint *puVar31;\n  undefined4 extraout_EDX_00;\n  ssh_gss_library *psVar32;\n  int iVar33;\n  uint *puVar34;\n  char *pcVar35;\n  uint *puVar36;\n  int in_GS_OFFSET;\n  ssh2_userkey *local_64;\n  char **local_60;\n  int local_54;\n  char *name;\n  char *inst;\n  char *lang;\n  int name_len;\n  int inst_len;\n  int len;\n  char *methods;\n  char *error;\n  char *local_28;\n  uchar x [4];\n  \n  piVar12 = (int *)ssh->do_ssh2_authconn_state;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar12 == (int *)0x0) {\n    piVar12 = (int *)safemalloc(1,0xe8);\n    ssh->do_ssh2_authconn_state = piVar12;\n    *piVar12 = 0;\nLAB_0002d8d0:\n    iVar20 = ssh->bare_connection;\n    ssh->packet_dispatch[6] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;\n    piVar12[2] = 0;\n    piVar12[0xe] = 0;\n    piVar12[0xd] = 0;\n    piVar12[0x1c] = 0;\n    piVar12[0xb] = 0;\n    if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }\nLAB_0002d97a:\n    bufchain_init(&ssh->banner);\n    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;\n    piVar12[0x14] = 0;\n    if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }\nLAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;\n    if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }\n    if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }\n    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }\n    ptVar13 = newtree234(ssh_channelcmp);\n    ssh->channels = ptVar13;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;\n    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;\n    iVar20 = conf_get_int(ssh->conf,0x2d);\n    if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }\n    ssh->mainchan = (ssh_channel *)0x0;\nLAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;\n    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;\n    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;\n    ssh->packet_dispatch[99] = ssh2_msg_channel_response;\n    ssh->packet_dispatch[100] = ssh2_msg_channel_response;\n    if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }\n    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }\n    ssh_setup_portfwd(ssh,ssh->conf);\n    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    iVar20 = conf_get_int(ssh->conf,0x95);\n    if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }\n    iVar20 = ssh_agent_forwarding_permitted(ssh);\n    if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    iVar20 = conf_get_int(ssh->conf,0x16);\n    if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }\n    pcVar19 = conf_get_str(ssh->conf,iVar20);\n    if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }\n    ssh2_pkt_send(ssh,pPVar11);\n  }\n  else {\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }\n  *piVar12 = 0x2a90;\nLAB_0002d320:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "void __regparm3 do_ssh2_authconn(Ssh_conflict ssh,uchar *in,int inlen,Packet *pktin)\n\n{\n  bufchain *ch;\n  void **ppvVar1;\n  int iVar2;\n  char cVar3;\n  uchar uVar4;\n  Conf *pCVar5;\n  code *pcVar6;\n  uint uVar7;\n  size_t sVar8;\n  size_t sVar9;\n  int iVar10;\n  Packet *pPVar11;\n  int *piVar12;\n  tree234 *ptVar13;\n  Filename *pFVar14;\n  uchar *puVar15;\n  uchar *sigblob_v;\n  ssh_channel *psVar16;\n  prompt_t **pppVar17;\n  prompts_t *ppVar18;\n  char *pcVar19;\n  int iVar20;\n  ulong uVar21;\n  uint uVar22;\n  undefined1 *puVar23;\n  void *pvVar24;\n  agent_pending_query *paVar25;\n  undefined *puVar26;\n  X11Display *pXVar27;\n  X11FakeAuth *pXVar28;\n  ssh_gss_liblist *psVar29;\n  int iVar30;\n  int padsize;\n  int padsize_00;\n  int extraout_ECX;\n  int extraout_ECX_00;\n  uint *extraout_EDX;\n  uint *puVar31;\n  undefined4 extraout_EDX_00;\n  ssh_gss_library *psVar32;\n  int iVar33;\n  uint *puVar34;\n  char *pcVar35;\n  uint *puVar36;\n  int in_GS_OFFSET;\n  ssh2_userkey *local_64;\n  char **local_60;\n  int local_54;\n  char *name;\n  char *inst;\n  char *lang;\n  int name_len;\n  int inst_len;\n  int len;\n  char *methods;\n  char *error;\n  char *local_28;\n  uchar x [4];\n  \n  piVar12 = (int *)ssh->do_ssh2_authconn_state;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar12 == (int *)0x0) {\n    piVar12 = (int *)safemalloc(1,0xe8);\n    ssh->do_ssh2_authconn_state = piVar12;\n    *piVar12 = 0;\nLAB_0002d8d0:\n    iVar20 = ssh->bare_connection;\n    ssh->packet_dispatch[6] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;\n    piVar12[2] = 0;\n    piVar12[0xe] = 0;\n    piVar12[0xd] = 0;\n    piVar12[0x1c] = 0;\n    piVar12[0xb] = 0;\n    if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }\nLAB_0002d97a:\n    bufchain_init(&ssh->banner);\n    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;\n    piVar12[0x14] = 0;\n    if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }\nLAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;\n    if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }\n    if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }\n    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }\n    ptVar13 = newtree234(ssh_channelcmp);\n    ssh->channels = ptVar13;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;\n    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;\n    iVar20 = conf_get_int(ssh->conf,0x2d);\n    if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }\n    ssh->mainchan = (ssh_channel *)0x0;\nLAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;\n    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;\n    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;\n    ssh->packet_dispatch[99] = ssh2_msg_channel_response;\n    ssh->packet_dispatch[100] = ssh2_msg_channel_response;\n    if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }\n    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }\n    ssh_setup_portfwd(ssh,ssh->conf);\n    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    iVar20 = conf_get_int(ssh->conf,0x95);\n    if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }\n    iVar20 = ssh_agent_forwarding_permitted(ssh);\n    if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    iVar20 = conf_get_int(ssh->conf,0x16);\n    if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }\n    pcVar19 = conf_get_str(ssh->conf,iVar20);\n    if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }\n    ssh2_pkt_send(ssh,pPVar11);\n  }\n  else {\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }\n  *piVar12 = 0x2a90;\nLAB_0002d320:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "do_ssh2_authconn(Ssh_conflict ssh,uchar *in,int inlen,Packet *pktin)" identifier (parameter_list "(Ssh_conflict ssh,uchar *in,int inlen,Packet *pktin)" ( (parameter_declaration "Ssh_conflict ssh" type_identifier identifier) , (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "int inlen" primitive_type identifier) , (parameter_declaration "Packet *pktin" type_identifier (pointer_declarator "*pktin" * identifier)) ))) (compound_statement "{\n  bufchain *ch;\n  void **ppvVar1;\n  int iVar2;\n  char cVar3;\n  uchar uVar4;\n  Conf *pCVar5;\n  code *pcVar6;\n  uint uVar7;\n  size_t sVar8;\n  size_t sVar9;\n  int iVar10;\n  Packet *pPVar11;\n  int *piVar12;\n  tree234 *ptVar13;\n  Filename *pFVar14;\n  uchar *puVar15;\n  uchar *sigblob_v;\n  ssh_channel *psVar16;\n  prompt_t **pppVar17;\n  prompts_t *ppVar18;\n  char *pcVar19;\n  int iVar20;\n  ulong uVar21;\n  uint uVar22;\n  undefined1 *puVar23;\n  void *pvVar24;\n  agent_pending_query *paVar25;\n  undefined *puVar26;\n  X11Display *pXVar27;\n  X11FakeAuth *pXVar28;\n  ssh_gss_liblist *psVar29;\n  int iVar30;\n  int padsize;\n  int padsize_00;\n  int extraout_ECX;\n  int extraout_ECX_00;\n  uint *extraout_EDX;\n  uint *puVar31;\n  undefined4 extraout_EDX_00;\n  ssh_gss_library *psVar32;\n  int iVar33;\n  uint *puVar34;\n  char *pcVar35;\n  uint *puVar36;\n  int in_GS_OFFSET;\n  ssh2_userkey *local_64;\n  char **local_60;\n  int local_54;\n  char *name;\n  char *inst;\n  char *lang;\n  int name_len;\n  int inst_len;\n  int len;\n  char *methods;\n  char *error;\n  char *local_28;\n  uchar x [4];\n  \n  piVar12 = (int *)ssh->do_ssh2_authconn_state;\n  iVar2 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar12 == (int *)0x0) {\n    piVar12 = (int *)safemalloc(1,0xe8);\n    ssh->do_ssh2_authconn_state = piVar12;\n    *piVar12 = 0;\nLAB_0002d8d0:\n    iVar20 = ssh->bare_connection;\n    ssh->packet_dispatch[6] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;\n    piVar12[2] = 0;\n    piVar12[0xe] = 0;\n    piVar12[0xd] = 0;\n    piVar12[0x1c] = 0;\n    piVar12[0xb] = 0;\n    if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }\nLAB_0002d97a:\n    bufchain_init(&ssh->banner);\n    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;\n    piVar12[0x14] = 0;\n    if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }\nLAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;\n    if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }\n    if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }\n    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }\n    ptVar13 = newtree234(ssh_channelcmp);\n    ssh->channels = ptVar13;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;\n    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;\n    iVar20 = conf_get_int(ssh->conf,0x2d);\n    if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }\n    ssh->mainchan = (ssh_channel *)0x0;\nLAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;\n    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;\n    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;\n    ssh->packet_dispatch[99] = ssh2_msg_channel_response;\n    ssh->packet_dispatch[100] = ssh2_msg_channel_response;\n    if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }\n    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }\n    ssh_setup_portfwd(ssh,ssh->conf);\n    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    iVar20 = conf_get_int(ssh->conf,0x95);\n    if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }\n    iVar20 = ssh_agent_forwarding_permitted(ssh);\n    if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    iVar20 = conf_get_int(ssh->conf,0x16);\n    if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }\n    pcVar19 = conf_get_str(ssh->conf,iVar20);\n    if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }\n    ssh2_pkt_send(ssh,pPVar11);\n  }\n  else {\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }\n  *piVar12 = 0x2a90;\nLAB_0002d320:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "bufchain *ch;" type_identifier (pointer_declarator "*ch" * identifier) ;) (declaration "void **ppvVar1;" primitive_type (pointer_declarator "**ppvVar1" * (pointer_declarator "*ppvVar1" * identifier)) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "uchar uVar4;" type_identifier identifier ;) (declaration "Conf *pCVar5;" type_identifier (pointer_declarator "*pCVar5" * identifier) ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "size_t sVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "Packet *pPVar11;" type_identifier (pointer_declarator "*pPVar11" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "tree234 *ptVar13;" type_identifier (pointer_declarator "*ptVar13" * identifier) ;) (declaration "Filename *pFVar14;" type_identifier (pointer_declarator "*pFVar14" * identifier) ;) (declaration "uchar *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "uchar *sigblob_v;" type_identifier (pointer_declarator "*sigblob_v" * identifier) ;) (declaration "ssh_channel *psVar16;" type_identifier (pointer_declarator "*psVar16" * identifier) ;) (declaration "prompt_t **pppVar17;" type_identifier (pointer_declarator "**pppVar17" * (pointer_declarator "*pppVar17" * identifier)) ;) (declaration "prompts_t *ppVar18;" type_identifier (pointer_declarator "*ppVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "uint uVar22;" type_identifier identifier ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "void *pvVar24;" primitive_type (pointer_declarator "*pvVar24" * identifier) ;) (declaration "agent_pending_query *paVar25;" type_identifier (pointer_declarator "*paVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "X11Display *pXVar27;" type_identifier (pointer_declarator "*pXVar27" * identifier) ;) (declaration "X11FakeAuth *pXVar28;" type_identifier (pointer_declarator "*pXVar28" * identifier) ;) (declaration "ssh_gss_liblist *psVar29;" type_identifier (pointer_declarator "*psVar29" * identifier) ;) (declaration "int iVar30;" primitive_type identifier ;) (declaration "int padsize;" primitive_type identifier ;) (declaration "int padsize_00;" primitive_type identifier ;) (declaration "int extraout_ECX;" primitive_type identifier ;) (declaration "int extraout_ECX_00;" primitive_type identifier ;) (declaration "uint *extraout_EDX;" type_identifier (pointer_declarator "*extraout_EDX" * identifier) ;) (declaration "uint *puVar31;" type_identifier (pointer_declarator "*puVar31" * identifier) ;) (declaration "undefined4 extraout_EDX_00;" type_identifier identifier ;) (declaration "ssh_gss_library *psVar32;" type_identifier (pointer_declarator "*psVar32" * identifier) ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "uint *puVar34;" type_identifier (pointer_declarator "*puVar34" * identifier) ;) (declaration "char *pcVar35;" primitive_type (pointer_declarator "*pcVar35" * identifier) ;) (declaration "uint *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "ssh2_userkey *local_64;" type_identifier (pointer_declarator "*local_64" * identifier) ;) (declaration "char **local_60;" primitive_type (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "char *name;" primitive_type (pointer_declarator "*name" * identifier) ;) (declaration "char *inst;" primitive_type (pointer_declarator "*inst" * identifier) ;) (declaration "char *lang;" primitive_type (pointer_declarator "*lang" * identifier) ;) (declaration "int name_len;" primitive_type identifier ;) (declaration "int inst_len;" primitive_type identifier ;) (declaration "int len;" primitive_type identifier ;) (declaration "char *methods;" primitive_type (pointer_declarator "*methods" * identifier) ;) (declaration "char *error;" primitive_type (pointer_declarator "*error" * identifier) ;) (declaration "char *local_28;" primitive_type (pointer_declarator "*local_28" * identifier) ;) (declaration "uchar x [4];" type_identifier (array_declarator "x [4]" identifier [ number_literal ]) ;) (expression_statement "piVar12 = (int *)ssh->do_ssh2_authconn_state;" (assignment_expression "piVar12 = (int *)ssh->do_ssh2_authconn_state" identifier = (cast_expression "(int *)ssh->do_ssh2_authconn_state" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "ssh->do_ssh2_authconn_state" identifier -> field_identifier))) ;) (expression_statement "iVar2 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar2 = *(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) ))))) ;) (if_statement "if (piVar12 == (int *)0x0) {\n    piVar12 = (int *)safemalloc(1,0xe8);\n    ssh->do_ssh2_authconn_state = piVar12;\n    *piVar12 = 0;\nLAB_0002d8d0:\n    iVar20 = ssh->bare_connection;\n    ssh->packet_dispatch[6] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;\n    piVar12[2] = 0;\n    piVar12[0xe] = 0;\n    piVar12[0xd] = 0;\n    piVar12[0x1c] = 0;\n    piVar12[0xb] = 0;\n    if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }\nLAB_0002d97a:\n    bufchain_init(&ssh->banner);\n    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;\n    piVar12[0x14] = 0;\n    if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }\nLAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;\n    if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }\n    if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }\n    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }\n    ptVar13 = newtree234(ssh_channelcmp);\n    ssh->channels = ptVar13;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;\n    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;\n    iVar20 = conf_get_int(ssh->conf,0x2d);\n    if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }\n    ssh->mainchan = (ssh_channel *)0x0;\nLAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;\n    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;\n    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;\n    ssh->packet_dispatch[99] = ssh2_msg_channel_response;\n    ssh->packet_dispatch[100] = ssh2_msg_channel_response;\n    if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }\n    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }\n    ssh_setup_portfwd(ssh,ssh->conf);\n    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    iVar20 = conf_get_int(ssh->conf,0x95);\n    if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }\n    iVar20 = ssh_agent_forwarding_permitted(ssh);\n    if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    iVar20 = conf_get_int(ssh->conf,0x16);\n    if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }\n    pcVar19 = conf_get_str(ssh->conf,iVar20);\n    if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }\n    ssh2_pkt_send(ssh,pPVar11);\n  }\n  else {\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }" if (parenthesized_expression "(piVar12 == (int *)0x0)" ( (binary_expression "piVar12 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar12 = (int *)safemalloc(1,0xe8);\n    ssh->do_ssh2_authconn_state = piVar12;\n    *piVar12 = 0;\nLAB_0002d8d0:\n    iVar20 = ssh->bare_connection;\n    ssh->packet_dispatch[6] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;\n    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;\n    piVar12[2] = 0;\n    piVar12[0xe] = 0;\n    piVar12[0xd] = 0;\n    piVar12[0x1c] = 0;\n    piVar12[0xb] = 0;\n    if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }\nLAB_0002d97a:\n    bufchain_init(&ssh->banner);\n    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;\n    piVar12[0x14] = 0;\n    if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }\nLAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;\n    if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }\n    if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }\n    if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }\n    ptVar13 = newtree234(ssh_channelcmp);\n    ssh->channels = ptVar13;\n    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;\n    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;\n    iVar20 = conf_get_int(ssh->conf,0x2d);\n    if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }\n    ssh->mainchan = (ssh_channel *)0x0;\nLAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;\n    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;\n    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;\n    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;\n    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;\n    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;\n    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;\n    ssh->packet_dispatch[99] = ssh2_msg_channel_response;\n    ssh->packet_dispatch[100] = ssh2_msg_channel_response;\n    if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }\n    if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }\n    ssh_setup_portfwd(ssh,ssh->conf);\n    if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    iVar20 = conf_get_int(ssh->conf,0x95);\n    if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }\n    iVar20 = ssh_agent_forwarding_permitted(ssh);\n    if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    iVar20 = conf_get_int(ssh->conf,0x16);\n    if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }\n    ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }\n    pcVar19 = conf_get_str(ssh->conf,iVar20);\n    if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }\n    ssh2_pkt_send(ssh,pPVar11);\n  }" { (expression_statement "piVar12 = (int *)safemalloc(1,0xe8);" (assignment_expression "piVar12 = (int *)safemalloc(1,0xe8)" identifier = (cast_expression "(int *)safemalloc(1,0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0xe8)" identifier (argument_list "(1,0xe8)" ( number_literal , number_literal ))))) ;) (expression_statement "ssh->do_ssh2_authconn_state = piVar12;" (assignment_expression "ssh->do_ssh2_authconn_state = piVar12" (field_expression "ssh->do_ssh2_authconn_state" identifier -> field_identifier) = identifier) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (labeled_statement "LAB_0002d8d0:\n    iVar20 = ssh->bare_connection;" statement_identifier : (expression_statement "iVar20 = ssh->bare_connection;" (assignment_expression "iVar20 = ssh->bare_connection" identifier = (field_expression "ssh->bare_connection" identifier -> field_identifier)) ;)) (expression_statement "ssh->packet_dispatch[6] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[6] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[6]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x32] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x32] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x32]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x33] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x33] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x33]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x34] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x34] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x34]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x35] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x35] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x35]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x3c] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x3c]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x3d] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x3d]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x50] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x50] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x50]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x51] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x51] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x51]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x52] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x52] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x52]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5a] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5a]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5b] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5b]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5c] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5c]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5d] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5d]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5e] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5e]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x5f] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x5f]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x60] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x60] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x60]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x61] = ssh2_msg_authconn;" (assignment_expression "ssh->packet_dispatch[0x61] = ssh2_msg_authconn" (subscript_expression "ssh->packet_dispatch[0x61]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "piVar12[2] = 0;" (assignment_expression "piVar12[2] = 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xe] = 0;" (assignment_expression "piVar12[0xe] = 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xd] = 0;" (assignment_expression "piVar12[0xd] = 0" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x1c] = 0;" (assignment_expression "piVar12[0x1c] = 0" (subscript_expression "piVar12[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xb] = 0;" (assignment_expression "piVar12[0xb] = 0" (subscript_expression "piVar12[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar20 == 0) {\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar20 = conf_get_int(ssh->conf,0x23);\n      if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "iVar20 = conf_get_int(ssh->conf,0x23);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x23)" identifier = (call_expression "conf_get_int(ssh->conf,0x23)" identifier (argument_list "(ssh->conf,0x23)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-userauth");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002fadd:\n        *piVar12 = 0x246f;\n        goto LAB_0002d320;\n      }" { (expression_statement "pPVar11 = ssh2_pkt_init(5);" (assignment_expression "pPVar11 = ssh2_pkt_init(5)" identifier = (call_expression "ssh2_pkt_init(5)" identifier (argument_list "(5)" ( number_literal )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,"ssh-userauth");" (call_expression "ssh_pkt_addstring(pPVar11,"ssh-userauth")" identifier (argument_list "(pPVar11,"ssh-userauth")" ( identifier , (string_literal ""ssh-userauth"" " string_content ") ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (labeled_statement "LAB_0002fadd:\n        *piVar12 = 0x246f;" statement_identifier : (expression_statement "*piVar12 = 0x246f;" (assignment_expression "*piVar12 = 0x246f" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dbfb:\n      if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (piVar12[2] == 0) {\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar12[2] == 0)" ( (binary_expression "piVar12[2] == 0" (subscript_expression "piVar12[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pPVar11 = ssh2_pkt_init(5);\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,"ssh-connection");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\nLAB_0002dc2e:\n        *piVar12 = 0x247a;\n        goto LAB_0002d320;\n      }" { (expression_statement "pPVar11 = ssh2_pkt_init(5);" (assignment_expression "pPVar11 = ssh2_pkt_init(5)" identifier = (call_expression "ssh2_pkt_init(5)" identifier (argument_list "(5)" ( number_literal )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,"ssh-connection");" (call_expression "ssh_pkt_addstring(pPVar11,"ssh-connection")" identifier (argument_list "(pPVar11,"ssh-connection")" ( identifier , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (labeled_statement "LAB_0002dc2e:\n        *piVar12 = 0x247a;" statement_identifier : (expression_statement "*piVar12 = 0x247a;" (assignment_expression "*piVar12 = 0x247a" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }" else (compound_statement "{\nLAB_0002d973:\n      piVar12[0xd] = 1;\n    }" { (labeled_statement "LAB_0002d973:\n      piVar12[0xd] = 1;" statement_identifier : (expression_statement "piVar12[0xd] = 1;" (assignment_expression "piVar12[0xd] = 1" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) = number_literal) ;)) }))) (labeled_statement "LAB_0002d97a:\n    bufchain_init(&ssh->banner);" statement_identifier : (expression_statement "bufchain_init(&ssh->banner);" (call_expression "bufchain_init(&ssh->banner)" identifier (argument_list "(&ssh->banner)" ( (pointer_expression "&ssh->banner" & (field_expression "ssh->banner" identifier -> field_identifier)) ))) ;)) (expression_statement "ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;" (assignment_expression "ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner" (subscript_expression "ssh->packet_dispatch[0x35]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "piVar12[0x14] = 0;" (assignment_expression "piVar12[0x14] = 0" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar12[0xd] == 0) {\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar12[0x13] = 0;\n    }" if (parenthesized_expression "(piVar12[0xd] == 0)" ( (binary_expression "piVar12[0xd] == 0" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pFVar14 = conf_get_filename(ssh->conf,0x20);\n      piVar12[0x2f] = (int)pFVar14;\n      iVar20 = filename_is_null(pFVar14);\n      if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }\n      piVar12[0x1c] = 0;\n      piVar12[0x21] = 0;\n      piVar12[0x1f] = 0;\n      iVar20 = conf_get_int(ssh->conf,0x1c);\n      if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar12[0x13] = 0;\n      if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "pFVar14 = conf_get_filename(ssh->conf,0x20);" (assignment_expression "pFVar14 = conf_get_filename(ssh->conf,0x20)" identifier = (call_expression "conf_get_filename(ssh->conf,0x20)" identifier (argument_list "(ssh->conf,0x20)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "piVar12[0x2f] = (int)pFVar14;" (assignment_expression "piVar12[0x2f] = (int)pFVar14" (subscript_expression "piVar12[0x2f]" identifier [ number_literal ]) = (cast_expression "(int)pFVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar20 = filename_is_null(pFVar14);" (assignment_expression "iVar20 = filename_is_null(pFVar14)" identifier = (call_expression "filename_is_null(pFVar14)" identifier (argument_list "(pFVar14)" ( identifier )))) ;) (if_statement "if (iVar20 == 0) {\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);\n        logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);\n        iVar20 = key_type((Filename *)piVar12[0x2f]);\n        if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }\n      }" { (expression_statement "pcVar19 = filename_to_str((Filename *)piVar12[0x2f]);" (assignment_expression "pcVar19 = filename_to_str((Filename *)piVar12[0x2f])" identifier = (call_expression "filename_to_str((Filename *)piVar12[0x2f])" identifier (argument_list "((Filename *)piVar12[0x2f])" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) )))) ;) (expression_statement "logeventf(ssh,"Reading key file \"%.150s\"",pcVar19);" (call_expression "logeventf(ssh,"Reading key file \"%.150s\"",pcVar19)" identifier (argument_list "(ssh,"Reading key file \"%.150s\"",pcVar19)" ( identifier , (string_literal ""Reading key file \"%.150s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar20 = key_type((Filename *)piVar12[0x2f]);" (assignment_expression "iVar20 = key_type((Filename *)piVar12[0x2f])" identifier = (call_expression "key_type((Filename *)piVar12[0x2f])" identifier (argument_list "((Filename *)piVar12[0x2f])" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) )))) ;) (if_statement "if ((iVar20 == 9) || (iVar20 == 3)) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\n        else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }" if (parenthesized_expression "((iVar20 == 9) || (iVar20 == 3))" ( (binary_expression "(iVar20 == 9) || (iVar20 == 3)" (parenthesized_expression "(iVar20 == 9)" ( (binary_expression "iVar20 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar20 == 3)" ( (binary_expression "iVar20 == 3" identifier == number_literal) ))) )) (compound_statement "{\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);\n          pcVar19 = error;\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }" { (expression_statement "puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);" (assignment_expression "puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" identifier = (call_expression "ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" identifier (argument_list "((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) , (cast_expression "(char **)(piVar12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12 + 0x18)" ( (binary_expression "piVar12 + 0x18" identifier + number_literal) ))) , (binary_expression "piVar12 + 0x15" identifier + number_literal) , (cast_expression "(char **)(piVar12 + 0x19)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12 + 0x19)" ( (binary_expression "piVar12 + 0x19" identifier + number_literal) ))) , (pointer_expression "&error" & identifier) )))) ;) (expression_statement "piVar12[0x14] = (int)puVar15;" (assignment_expression "piVar12[0x14] = (int)puVar15" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar15 != (uchar *)0x0) {\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" if (parenthesized_expression "(puVar15 != (uchar *)0x0)" ( (binary_expression "puVar15 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            piVar12[0x16] = (uint)(iVar20 == 3);\n            if (iVar20 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" { (expression_statement "piVar12[0x16] = (uint)(iVar20 == 3);" (assignment_expression "piVar12[0x16] = (uint)(iVar20 == 3)" (subscript_expression "piVar12[0x16]" identifier [ number_literal ]) = (call_expression "(uint)(iVar20 == 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 == 3)" ( (binary_expression "iVar20 == 3" identifier == number_literal) )))) ;) (if_statement "if (iVar20 != 3) goto LAB_0002fb9e;" if (parenthesized_expression "(iVar20 != 3)" ( (binary_expression "iVar20 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0002fb9e;" goto statement_identifier ;)) (goto_statement "goto LAB_0002fbb1;" goto statement_identifier ;) })) (labeled_statement "LAB_00030219:\n          logeventf(ssh,"Unable to load key (%s)",error);" statement_identifier : (expression_statement "logeventf(ssh,"Unable to load key (%s)",error);" (call_expression "logeventf(ssh,"Unable to load key (%s)",error)" identifier (argument_list "(ssh,"Unable to load key (%s)",error)" ( identifier , (string_literal ""Unable to load key (%s)"" " string_content ") , identifier ))) ;)) (expression_statement "pcVar19 = error;" (assignment_expression "pcVar19 = error" identifier = identifier) ;) (expression_statement "pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);" (assignment_expression "pcVar35 = filename_to_str((Filename *)piVar12[0x2f])" identifier = (call_expression "filename_to_str((Filename *)piVar12[0x2f])" identifier (argument_list "((Filename *)piVar12[0x2f])" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) )))) ;) (expression_statement "pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);" (assignment_expression "pcVar19 = dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" identifier = (call_expression "dupprintf("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" identifier (argument_list "("Unable to load key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" ( (string_literal ""Unable to load key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier )))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) }) (else_clause "else if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }" else (if_statement "if (iVar20 == 10) {\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }\n        else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }" if (parenthesized_expression "(iVar20 == 10)" ( (binary_expression "iVar20 == 10" identifier == number_literal) )) (compound_statement "{\n          puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);\n          piVar12[0x14] = (int)puVar15;\n          if (puVar15 == (uchar *)0x0) goto LAB_00030219;\n          piVar12[0x16] = 0;\nLAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);\nLAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);\n          piVar12[0x17] = iVar20;\n        }" { (expression_statement "puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error);" (assignment_expression "puVar15 = ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" identifier = (call_expression "ssh2_userkey_loadpub\n                              ((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" identifier (argument_list "((Filename *)piVar12[0x2f],(char **)(piVar12 + 0x18),piVar12 + 0x15,\n                               (char **)(piVar12 + 0x19),&error)" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) , (cast_expression "(char **)(piVar12 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12 + 0x18)" ( (binary_expression "piVar12 + 0x18" identifier + number_literal) ))) , (binary_expression "piVar12 + 0x15" identifier + number_literal) , (cast_expression "(char **)(piVar12 + 0x19)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12 + 0x19)" ( (binary_expression "piVar12 + 0x19" identifier + number_literal) ))) , (pointer_expression "&error" & identifier) )))) ;) (expression_statement "piVar12[0x14] = (int)puVar15;" (assignment_expression "piVar12[0x14] = (int)puVar15" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) = (cast_expression "(int)puVar15" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (puVar15 == (uchar *)0x0) goto LAB_00030219;" if (parenthesized_expression "(puVar15 == (uchar *)0x0)" ( (binary_expression "puVar15 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00030219;" goto statement_identifier ;)) (expression_statement "piVar12[0x16] = 0;" (assignment_expression "piVar12[0x16] = 0" (subscript_expression "piVar12[0x16]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002fb9e:\n          logeventf(ssh,"Key file contains public key only",pcVar19);" statement_identifier : (expression_statement "logeventf(ssh,"Key file contains public key only",pcVar19);" (call_expression "logeventf(ssh,"Key file contains public key only",pcVar19)" identifier (argument_list "(ssh,"Key file contains public key only",pcVar19)" ( identifier , (string_literal ""Key file contains public key only"" " string_content ") , identifier ))) ;)) (labeled_statement "LAB_0002fbb1:\n          iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);" statement_identifier : (expression_statement "iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0);" (assignment_expression "iVar20 = ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0)" identifier = (call_expression "ssh2_userkey_encrypted((Filename *)piVar12[0x2f],(char **)0x0)" identifier (argument_list "((Filename *)piVar12[0x2f],(char **)0x0)" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;)) (expression_statement "piVar12[0x17] = iVar20;" (assignment_expression "piVar12[0x17] = iVar20" (subscript_expression "piVar12[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }" else (compound_statement "{\n          pcVar19 = key_type_to_str(iVar20);\n          logeventf(ssh,"Unable to use this key file (%s)",pcVar19);\n          pcVar19 = key_type_to_str(iVar20);\n          pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);\n          pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n          piVar12[0x14] = 0;\n        }" { (expression_statement "pcVar19 = key_type_to_str(iVar20);" (assignment_expression "pcVar19 = key_type_to_str(iVar20)" identifier = (call_expression "key_type_to_str(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "logeventf(ssh,"Unable to use this key file (%s)",pcVar19);" (call_expression "logeventf(ssh,"Unable to use this key file (%s)",pcVar19)" identifier (argument_list "(ssh,"Unable to use this key file (%s)",pcVar19)" ( identifier , (string_literal ""Unable to use this key file (%s)"" " string_content ") , identifier ))) ;) (expression_statement "pcVar19 = key_type_to_str(iVar20);" (assignment_expression "pcVar19 = key_type_to_str(iVar20)" identifier = (call_expression "key_type_to_str(iVar20)" identifier (argument_list "(iVar20)" ( identifier )))) ;) (expression_statement "pcVar35 = filename_to_str((Filename *)piVar12[0x2f]);" (assignment_expression "pcVar35 = filename_to_str((Filename *)piVar12[0x2f])" identifier = (call_expression "filename_to_str((Filename *)piVar12[0x2f])" identifier (argument_list "((Filename *)piVar12[0x2f])" ( (cast_expression "(Filename *)piVar12[0x2f]" ( (type_descriptor "Filename *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2f]" identifier [ number_literal ])) )))) ;) (expression_statement "pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19);" (assignment_expression "pcVar19 = dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" identifier = (call_expression "dupprintf("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" identifier (argument_list "("Unable to use key file \"%.150s\" (%s)\r\n",pcVar35,pcVar19)" ( (string_literal ""Unable to use key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier )))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) (expression_statement "piVar12[0x14] = 0;" (assignment_expression "piVar12[0x14] = 0" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) = number_literal) ;) }))))) })) (expression_statement "piVar12[0x1c] = 0;" (assignment_expression "piVar12[0x1c] = 0" (subscript_expression "piVar12[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x21] = 0;" (assignment_expression "piVar12[0x21] = 0" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x1f] = 0;" (assignment_expression "piVar12[0x1f] = 0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x1c);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x1c)" identifier = (call_expression "conf_get_int(ssh->conf,0x1c)" identifier (argument_list "(ssh->conf,0x1c)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if ((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)) {\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }" if (parenthesized_expression "((iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0))" ( (binary_expression "(iVar20 != 0) && (iVar20 = agent_exists(), iVar20 != 0)" (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar20 = agent_exists(), iVar20 != 0)" ( (comma_expression "iVar20 = agent_exists(), iVar20 != 0" (assignment_expression "iVar20 = agent_exists()" identifier = (call_expression "agent_exists()" identifier (argument_list "()" ( )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        logevent(ssh->frontend,"Pageant is running. Requesting keys.");\n        piVar12[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar12 + 0x1b) = 0xb;\n        paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);\n        ssh->auth_agent_query = paVar25;\n        if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar19 = error;\n        piVar12[0x1c] = (int)error;\n        if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }\n      }" { (expression_statement "logevent(ssh->frontend,"Pageant is running. Requesting keys.");" (call_expression "logevent(ssh->frontend,"Pageant is running. Requesting keys.")" identifier (argument_list "(ssh->frontend,"Pageant is running. Requesting keys.")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Pageant is running. Requesting keys."" " string_content ") ))) ;) (expression_statement "piVar12[0x1a] = 0x1000000;" (assignment_expression "piVar12[0x1a] = 0x1000000" (subscript_expression "piVar12[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar12 + 0x1b) = 0xb;" (assignment_expression "*(undefined1 *)(piVar12 + 0x1b) = 0xb" (pointer_expression "*(undefined1 *)(piVar12 + 0x1b)" * (cast_expression "(undefined1 *)(piVar12 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 0x1b)" ( (binary_expression "piVar12 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh);" (assignment_expression "paVar25 = agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh)" identifier = (call_expression "agent_query(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh)" identifier (argument_list "(piVar12 + 0x1a,5,&error,piVar12 + 0x1e,ssh_agent_callback,ssh)" ( (binary_expression "piVar12 + 0x1a" identifier + number_literal) , number_literal , (pointer_expression "&error" & identifier) , (binary_expression "piVar12 + 0x1e" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "ssh->auth_agent_query = paVar25;" (assignment_expression "ssh->auth_agent_query = paVar25" (field_expression "ssh->auth_agent_query" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar25 != (agent_pending_query *)0x0) {\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(paVar25 != (agent_pending_query *)0x0)" ( (binary_expression "paVar25 != (agent_pending_query *)0x0" identifier != (cast_expression "(agent_pending_query *)0x0" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002eb58:\n          *piVar12 = 0x24d9;\n          goto LAB_0002d320;\n        }" { (labeled_statement "LAB_0002eb58:\n          *piVar12 = 0x24d9;" statement_identifier : (expression_statement "*piVar12 = 0x24d9;" (assignment_expression "*piVar12 = 0x24d9" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d78a:\n        pcVar19 = error;" statement_identifier : (expression_statement "pcVar19 = error;" (assignment_expression "pcVar19 = error" identifier = identifier) ;)) (expression_statement "piVar12[0x1c] = (int)error;" (assignment_expression "piVar12[0x1c] = (int)error" (subscript_expression "piVar12[0x1c]" identifier [ number_literal ]) = (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')) {\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }\n        else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }" if (parenthesized_expression "(((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f'))" ( (binary_expression "((error == (char *)0x0) || (piVar12[0x1e] < 5)) || (error[4] != '\f')" (parenthesized_expression "((error == (char *)0x0) || (piVar12[0x1e] < 5))" ( (binary_expression "(error == (char *)0x0) || (piVar12[0x1e] < 5)" (parenthesized_expression "(error == (char *)0x0)" ( (binary_expression "error == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar12[0x1e] < 5)" ( (binary_expression "piVar12[0x1e] < 5" (subscript_expression "piVar12[0x1e]" identifier [ number_literal ]) < number_literal) ))) )) || (parenthesized_expression "(error[4] != '\f')" ( (binary_expression "error[4] != '\f'" (subscript_expression "error[4]" identifier [ number_literal ]) != (char_literal "'\f'" ' escape_sequence ')) ))) )) (compound_statement "{\n          logevent(ssh->frontend,"Failed to get reply from Pageant");\n        }" { (expression_statement "logevent(ssh->frontend,"Failed to get reply from Pageant");" (call_expression "logevent(ssh->frontend,"Failed to get reply from Pageant")" identifier (argument_list "(ssh->frontend,"Failed to get reply from Pageant")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Failed to get reply from Pageant"" " string_content ") ))) ;) }) (else_clause "else {\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }" else (compound_statement "{\n          uVar22 = *(uint *)(error + 5);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x21] = iVar20;\n          if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }\n          logeventf(ssh,pcVar19);\n          piVar12[0x21] = 0;\n        }" { (expression_statement "uVar22 = *(uint *)(error + 5);" (assignment_expression "uVar22 = *(uint *)(error + 5)" identifier = (pointer_expression "*(uint *)(error + 5)" * (cast_expression "(uint *)(error + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(error + 5)" ( (binary_expression "error + 5" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);" (assignment_expression "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar12[0x21] = iVar20;" (assignment_expression "piVar12[0x21] = iVar20" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar20 < 0) {\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n            pcVar19 = "Pageant response contained a negative key count %d";\n          }" { (expression_statement "pcVar19 = "Pageant response contained a negative key count %d";" (assignment_expression "pcVar19 = "Pageant response contained a negative key count %d"" identifier = (string_literal ""Pageant response contained a negative key count %d"" " string_content ")) ;) }) (else_clause "else {\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }" else (compound_statement "{\n            puVar36 = (uint *)(pcVar19 + 9);\n            iVar33 = piVar12[0x1e] + -9;\n            puVar31 = puVar36;\n            if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar10 = 0;\n            puVar34 = puVar36;\n            if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }\n            pcVar19 = "Pageant response was truncated";\n          }" { (expression_statement "puVar36 = (uint *)(pcVar19 + 9);" (assignment_expression "puVar36 = (uint *)(pcVar19 + 9)" identifier = (cast_expression "(uint *)(pcVar19 + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar19 + 9)" ( (binary_expression "pcVar19 + 9" identifier + number_literal) )))) ;) (expression_statement "iVar33 = piVar12[0x1e] + -9;" (assignment_expression "iVar33 = piVar12[0x1e] + -9" identifier = (binary_expression "piVar12[0x1e] + -9" (subscript_expression "piVar12[0x1e]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar31 = puVar36;" (assignment_expression "puVar31 = puVar36" identifier = identifier) ;) (if_statement "if (iVar20 == 0) {\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);\n              if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" { (labeled_statement "LAB_00030479:\n              logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);" statement_identifier : (expression_statement "logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31);" (call_expression "logeventf(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31)" identifier (argument_list "(ssh,"Pageant has %d SSH-2 keys",iVar20,puVar31)" ( identifier , (string_literal ""Pageant has %d SSH-2 keys"" " string_content ") , identifier , identifier ))) ;)) (if_statement "if (piVar12[0x14] != 0) {\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }" if (parenthesized_expression "(piVar12[0x14] != 0)" ( (binary_expression "piVar12[0x14] != 0" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }\n                if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }\n              }" { (if_statement "if (0 < piVar12[0x21]) {\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }" if (parenthesized_expression "(0 < piVar12[0x21])" ( (binary_expression "0 < piVar12[0x21]" number_literal < (subscript_expression "piVar12[0x21]" identifier [ number_literal ])) )) (compound_statement "{\n                  iVar20 = 0;\n                  do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);\n                }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  } while (iVar20 < piVar12[0x21]);" do (compound_statement "{\n                    uVar22 = *puVar36;\n                    sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);\n                    piVar12[0x25] = sVar8;\n                    if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar36 = (uint *)((int)puVar36 + sVar8 + 4);\n                    iVar20 = iVar20 + 1;\n                    uVar22 = *puVar36;\n                    iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);\n                    puVar36 = (uint *)((int)puVar36 + iVar33 + 4);\n                  }" { (expression_statement "uVar22 = *puVar36;" (assignment_expression "uVar22 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18);" (assignment_expression "sVar8 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8\n                                  | uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar12[0x25] = sVar8;" (assignment_expression "piVar12[0x25] = sVar8" (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)) {\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }" if (parenthesized_expression "((sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0))" ( (binary_expression "(sVar8 == piVar12[0x15]) &&\n                       (iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)" (parenthesized_expression "(sVar8 == piVar12[0x15])" ( (binary_expression "sVar8 == piVar12[0x15]" identifier == (subscript_expression "piVar12[0x15]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0)" ( (comma_expression "iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8), iVar33 == 0" (assignment_expression "iVar33 = memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8)" identifier = (call_expression "memcmp(puVar36 + 1,(void *)piVar12[0x14],sVar8)" identifier (argument_list "(puVar36 + 1,(void *)piVar12[0x14],sVar8)" ( (binary_expression "puVar36 + 1" identifier + number_literal) , (cast_expression "(void *)piVar12[0x14]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x14]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar33 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                      logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);\n                      piVar12[0x20] = iVar20;\n                      piVar12[0x1f] = (int)puVar36;\n                      goto LAB_0002d7b9;\n                    }" { (expression_statement "logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0);" (call_expression "logeventf(ssh,"Pageant key #%d matches configured key file",iVar20,0)" identifier (argument_list "(ssh,"Pageant key #%d matches configured key file",iVar20,0)" ( identifier , (string_literal ""Pageant key #%d matches configured key file"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "piVar12[0x20] = iVar20;" (assignment_expression "piVar12[0x20] = iVar20" (subscript_expression "piVar12[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[0x1f] = (int)puVar36;" (assignment_expression "piVar12[0x1f] = (int)puVar36" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) = (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "puVar36 = (uint *)((int)puVar36 + sVar8 + 4);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + sVar8 + 4)" identifier = (cast_expression "(uint *)((int)puVar36 + sVar8 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + sVar8 + 4)" ( (binary_expression "(int)puVar36 + sVar8 + 4" (binary_expression "(int)puVar36 + sVar8" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = *puVar36;" (assignment_expression "uVar22 = *puVar36" identifier = (pointer_expression "*puVar36" * identifier)) ;) (expression_statement "iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18);" (assignment_expression "iVar33 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8 | uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 |\n                                   (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "puVar36 = (uint *)((int)puVar36 + iVar33 + 4);" (assignment_expression "puVar36 = (uint *)((int)puVar36 + iVar33 + 4)" identifier = (cast_expression "(uint *)((int)puVar36 + iVar33 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar36 + iVar33 + 4)" ( (binary_expression "(int)puVar36 + iVar33 + 4" (binary_expression "(int)puVar36 + iVar33" (cast_expression "(int)puVar36" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(iVar20 < piVar12[0x21])" ( (binary_expression "iVar20 < piVar12[0x21]" identifier < (subscript_expression "piVar12[0x21]" identifier [ number_literal ])) )) ;) })) (if_statement "if (piVar12[0x1f] == 0) {\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }" if (parenthesized_expression "(piVar12[0x1f] == 0)" ( (binary_expression "piVar12[0x1f] == 0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  logevent(ssh->frontend,"Configured key file not in Pageant");\n                  piVar12[0x21] = 0;\n                }" { (expression_statement "logevent(ssh->frontend,"Configured key file not in Pageant");" (call_expression "logevent(ssh->frontend,"Configured key file not in Pageant")" identifier (argument_list "(ssh->frontend,"Configured key file not in Pageant")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Configured key file not in Pageant"" " string_content ") ))) ;) (expression_statement "piVar12[0x21] = 0;" (assignment_expression "piVar12[0x21] = 0" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) = number_literal) ;) })) })) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "puVar34 = puVar36;" (assignment_expression "puVar34 = puVar36" identifier = identifier) ;) (if_statement "if (3 < iVar33) {\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }" if (parenthesized_expression "(3 < iVar33)" ( (binary_expression "3 < iVar33" number_literal < identifier) )) (compound_statement "{\n              while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }\n            }" { (while_statement "while( true ) {\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar22 = *puVar34;\n                uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);\n                if (iVar33 - 4U < uVar22) break;\n                puVar34 = (uint *)((int)puVar34 + uVar22 + 4);\n                uVar7 = *puVar34;\n                iVar33 = ((iVar33 - 4U) - uVar22) + -4;\n                iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);\n                if ((iVar30 < 0) || (iVar33 < iVar30)) break;\n                iVar33 = iVar33 - iVar30;\n                iVar10 = iVar10 + 1;\n                iVar20 = piVar12[0x21];\n                puVar31 = extraout_EDX;\n                if (iVar20 <= iVar10) goto LAB_00030479;\n                puVar34 = (uint *)((int)puVar34 + iVar30 + 4);\n                if (iVar33 < 4) break;\n              }" { (expression_statement "uVar22 = *puVar34;" (assignment_expression "uVar22 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (expression_statement "uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18);" (assignment_expression "uVar22 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                               uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (iVar33 - 4U < uVar22) break;" if (parenthesized_expression "(iVar33 - 4U < uVar22)" ( (binary_expression "iVar33 - 4U < uVar22" (binary_expression "iVar33 - 4U" identifier - number_literal) < identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar34 = (uint *)((int)puVar34 + uVar22 + 4);" (assignment_expression "puVar34 = (uint *)((int)puVar34 + uVar22 + 4)" identifier = (cast_expression "(uint *)((int)puVar34 + uVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + uVar22 + 4)" ( (binary_expression "(int)puVar34 + uVar22 + 4" (binary_expression "(int)puVar34 + uVar22" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar7 = *puVar34;" (assignment_expression "uVar7 = *puVar34" identifier = (pointer_expression "*puVar34" * identifier)) ;) (expression_statement "iVar33 = ((iVar33 - 4U) - uVar22) + -4;" (assignment_expression "iVar33 = ((iVar33 - 4U) - uVar22) + -4" identifier = (binary_expression "((iVar33 - 4U) - uVar22) + -4" (parenthesized_expression "((iVar33 - 4U) - uVar22)" ( (binary_expression "(iVar33 - 4U) - uVar22" (parenthesized_expression "(iVar33 - 4U)" ( (binary_expression "iVar33 - 4U" identifier - number_literal) )) - identifier) )) + number_literal)) ;) (expression_statement "iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18);" (assignment_expression "iVar30 = toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18)" identifier = (call_expression "toint(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18)" identifier (argument_list "(uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18)" ( (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8 |\n                               uVar7 << 0x18" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8 | (uVar7 & 0xff00) << 8" (binary_expression "uVar7 >> 0x18 | (uVar7 & 0xff0000) >> 8" (binary_expression "uVar7 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar7 & 0xff0000) >> 8" (parenthesized_expression "(uVar7 & 0xff0000)" ( (binary_expression "uVar7 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar7 & 0xff00) << 8" (parenthesized_expression "(uVar7 & 0xff00)" ( (binary_expression "uVar7 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar7 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if ((iVar30 < 0) || (iVar33 < iVar30)) break;" if (parenthesized_expression "((iVar30 < 0) || (iVar33 < iVar30))" ( (binary_expression "(iVar30 < 0) || (iVar33 < iVar30)" (parenthesized_expression "(iVar30 < 0)" ( (binary_expression "iVar30 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar33 < iVar30)" ( (binary_expression "iVar33 < iVar30" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar33 = iVar33 - iVar30;" (assignment_expression "iVar33 = iVar33 - iVar30" identifier = (binary_expression "iVar33 - iVar30" identifier - identifier)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (expression_statement "iVar20 = piVar12[0x21];" (assignment_expression "iVar20 = piVar12[0x21]" identifier = (subscript_expression "piVar12[0x21]" identifier [ number_literal ])) ;) (expression_statement "puVar31 = extraout_EDX;" (assignment_expression "puVar31 = extraout_EDX" identifier = identifier) ;) (if_statement "if (iVar20 <= iVar10) goto LAB_00030479;" if (parenthesized_expression "(iVar20 <= iVar10)" ( (binary_expression "iVar20 <= iVar10" identifier <= identifier) )) (goto_statement "goto LAB_00030479;" goto statement_identifier ;)) (expression_statement "puVar34 = (uint *)((int)puVar34 + iVar30 + 4);" (assignment_expression "puVar34 = (uint *)((int)puVar34 + iVar30 + 4)" identifier = (cast_expression "(uint *)((int)puVar34 + iVar30 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar34 + iVar30 + 4)" ( (binary_expression "(int)puVar34 + iVar30 + 4" (binary_expression "(int)puVar34 + iVar30" (cast_expression "(int)puVar34" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (if_statement "if (iVar33 < 4) break;" if (parenthesized_expression "(iVar33 < 4)" ( (binary_expression "iVar33 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "pcVar19 = "Pageant response was truncated";" (assignment_expression "pcVar19 = "Pageant response was truncated"" identifier = (string_literal ""Pageant response was truncated"" " string_content ")) ;) }))) (expression_statement "logeventf(ssh,pcVar19);" (call_expression "logeventf(ssh,pcVar19)" identifier (argument_list "(ssh,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "piVar12[0x21] = 0;" (assignment_expression "piVar12[0x21] = 0" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) = number_literal) ;) }))) })) (labeled_statement "LAB_0002d7b9:\n      piVar12[0x13] = 0;" statement_identifier : (expression_statement "piVar12[0x13] = 0;" (assignment_expression "piVar12[0x13] = 0" (subscript_expression "piVar12[0x13]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (piVar12[0xd] == 0) {\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar12[0xd] == 0)" ( (binary_expression "piVar12[0xd] == 0" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);\n        ssh->username = pcVar19;\n        if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }\nLAB_0002d7f9:\n        piVar12[0x13] = 1;\n        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        piVar12[1] = 0;\n        piVar12[3] = 0;\n        piVar12[0xd] = 0;\n        piVar12[8] = 0;\n        piVar12[0xc] = 0;\n        piVar12[9] = 0;\n        if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar12 = 0x25a0;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002d7cb:\n        pcVar19 = get_remote_username(ssh->conf);" statement_identifier : (expression_statement "pcVar19 = get_remote_username(ssh->conf);" (assignment_expression "pcVar19 = get_remote_username(ssh->conf)" identifier = (call_expression "get_remote_username(ssh->conf)" identifier (argument_list "(ssh->conf)" ( (field_expression "ssh->conf" identifier -> field_identifier) )))) ;)) (expression_statement "ssh->username = pcVar19;" (assignment_expression "ssh->username = pcVar19" (field_expression "ssh->username" identifier -> field_identifier) = identifier) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }\n        else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("SSH login name");\n          ppVar18->name = pcVar19;\n          pcVar19 = dupstr("login as: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);\n          ssh->username = pcVar19;\n          free_prompts((prompts_t *)piVar12[0xf]);\n        }" { (expression_statement "ppVar18 = new_prompts(ssh->frontend);" (assignment_expression "ppVar18 = new_prompts(ssh->frontend)" identifier = (call_expression "new_prompts(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) )))) ;) (expression_statement "piVar12[0xf] = (int)ppVar18;" (assignment_expression "piVar12[0xf] = (int)ppVar18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) = (cast_expression "(int)ppVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ppVar18->to_server = 1;" (assignment_expression "ppVar18->to_server = 1" (field_expression "ppVar18->to_server" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar19 = dupstr("SSH login name");" (assignment_expression "pcVar19 = dupstr("SSH login name")" identifier = (call_expression "dupstr("SSH login name")" identifier (argument_list "("SSH login name")" ( (string_literal ""SSH login name"" " string_content ") )))) ;) (expression_statement "ppVar18->name = pcVar19;" (assignment_expression "ppVar18->name = pcVar19" (field_expression "ppVar18->name" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar19 = dupstr("login as: ");" (assignment_expression "pcVar19 = dupstr("login as: ")" identifier = (call_expression "dupstr("login as: ")" identifier (argument_list "("login as: ")" ( (string_literal ""login as: "" " string_content ") )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,1);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,1)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,1)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (labeled_statement "LAB_0002f3ea:\n          if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }" statement_identifier : (if_statement "if (iVar20 < 0) {\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n            ssh->send_ok = 1;\n            goto LAB_0002e8c8;\n          }" { (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002e8c8;" goto statement_identifier ;) }))) (if_statement "if (iVar20 == 0) {\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            free_prompts((prompts_t *)piVar12[0xf]);\n            ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (expression_statement "ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1);" (call_expression "ssh_disconnect(ssh,"No username provided",(char *)0x0,0,1)" identifier (argument_list "(ssh,"No username provided",(char *)0x0,0,1)" ( identifier , (string_literal ""No username provided"" " string_content ") , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal , number_literal ))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result);" (assignment_expression "pcVar19 = dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result)" identifier = (call_expression "dupstr((*((prompts_t *)piVar12[0xf])->prompts)->result)" identifier (argument_list "((*((prompts_t *)piVar12[0xf])->prompts)->result)" ( (field_expression "(*((prompts_t *)piVar12[0xf])->prompts)->result" (parenthesized_expression "(*((prompts_t *)piVar12[0xf])->prompts)" ( (pointer_expression "*((prompts_t *)piVar12[0xf])->prompts" * (field_expression "((prompts_t *)piVar12[0xf])->prompts" (parenthesized_expression "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) )) -> field_identifier)) )) -> field_identifier) )))) ;) (expression_statement "ssh->username = pcVar19;" (assignment_expression "ssh->username = pcVar19" (field_expression "ssh->username" identifier -> field_identifier) = identifier) ;) (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) }) (else_clause "else if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }" else (if_statement "if (((byte)flags & 5) != 0) {\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }" if (parenthesized_expression "(((byte)flags & 5) != 0)" ( (binary_expression "((byte)flags & 5) != 0" (parenthesized_expression "((byte)flags & 5)" ( (binary_expression "(byte)flags & 5" (cast_expression "(byte)flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          safefree(pcVar19);\n        }" { (expression_statement "pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19);" (assignment_expression "pcVar19 = dupprintf("Using username \"%s\".\r\n",pcVar19)" identifier = (call_expression "dupprintf("Using username \"%s\".\r\n",pcVar19)" identifier (argument_list "("Using username \"%s\".\r\n",pcVar19)" ( (string_literal ""Using username \"%s\".\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier )))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) })))) (labeled_statement "LAB_0002d7f9:\n        piVar12[0x13] = 1;" statement_identifier : (expression_statement "piVar12[0x13] = 1;" (assignment_expression "piVar12[0x13] = 1" (subscript_expression "piVar12[0x13]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_NOAUTH" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"none");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"none")" identifier (argument_list "((Packet *)piVar12[0x2e],"none")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""none"" " string_content ") ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "piVar12[1] = 0;" (assignment_expression "piVar12[1] = 0" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[3] = 0;" (assignment_expression "piVar12[3] = 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xd] = 0;" (assignment_expression "piVar12[0xd] = 0" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[8] = 0;" (assignment_expression "piVar12[8] = 0" (subscript_expression "piVar12[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xc] = 0;" (assignment_expression "piVar12[0xc] = 0" (subscript_expression "piVar12[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[9] = 0;" (assignment_expression "piVar12[9] = 0" (subscript_expression "piVar12[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar12[0x1c] != 0) {\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }" if (parenthesized_expression "(piVar12[0x1c] != 0)" ( (binary_expression "piVar12[0x1c] != 0" (subscript_expression "piVar12[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }\n        }" { (if_statement "if (piVar12[0x1f] == 0) {\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }\n          else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }" if (parenthesized_expression "(piVar12[0x1f] == 0)" ( (binary_expression "piVar12[0x1f] == 0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            piVar12[0x20] = 0;\n            piVar12[0x1d] = piVar12[0x1c] + 9;\n          }" { (expression_statement "piVar12[0x20] = 0;" (assignment_expression "piVar12[0x20] = 0" (subscript_expression "piVar12[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x1d] = piVar12[0x1c] + 9;" (assignment_expression "piVar12[0x1d] = piVar12[0x1c] + 9" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar12[0x1c] + 9" (subscript_expression "piVar12[0x1c]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            piVar12[0x1d] = piVar12[0x1f];\n          }" else (compound_statement "{\n            piVar12[0x1d] = piVar12[0x1f];\n          }" { (expression_statement "piVar12[0x1d] = piVar12[0x1f];" (assignment_expression "piVar12[0x1d] = piVar12[0x1f]" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = (subscript_expression "piVar12[0x1f]" identifier [ number_literal ])) ;) }))) })) (labeled_statement "LAB_0002d310:\n        *piVar12 = 0x25a0;" statement_identifier : (expression_statement "*piVar12 = 0x25a0;" (assignment_expression "*piVar12 = 0x25a0" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n      piVar12[0x13] = 0;\n    }" else (compound_statement "{\n      piVar12[0x13] = 0;\n    }" { (expression_statement "piVar12[0x13] = 0;" (assignment_expression "piVar12[0x13] = 0" (subscript_expression "piVar12[0x13]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0002d9b1:\n    ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;" statement_identifier : (expression_statement "ssh->packet_dispatch[0x35] = (handler_fn_t)0x0;" (assignment_expression "ssh->packet_dispatch[0x35] = (handler_fn_t)0x0" (subscript_expression "ssh->packet_dispatch[0x35]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = (cast_expression "(handler_fn_t)0x0" ( (type_descriptor "handler_fn_t" type_identifier) ) number_literal)) ;)) (if_statement "if (piVar12[0x14] != 0) {\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }" if (parenthesized_expression "(piVar12[0x14] != 0)" ( (binary_expression "piVar12[0x14] != 0" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      safefree((void *)piVar12[0x18]);\n      safefree((void *)piVar12[0x14]);\n      safefree((void *)piVar12[0x19]);\n    }" { (expression_statement "safefree((void *)piVar12[0x18]);" (call_expression "safefree((void *)piVar12[0x18])" identifier (argument_list "((void *)piVar12[0x18])" ( (cast_expression "(void *)piVar12[0x18]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x18]" identifier [ number_literal ])) ))) ;) (expression_statement "safefree((void *)piVar12[0x14]);" (call_expression "safefree((void *)piVar12[0x14])" identifier (argument_list "((void *)piVar12[0x14])" ( (cast_expression "(void *)piVar12[0x14]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x14]" identifier [ number_literal ])) ))) ;) (expression_statement "safefree((void *)piVar12[0x19]);" (call_expression "safefree((void *)piVar12[0x19])" identifier (argument_list "((void *)piVar12[0x19])" ( (cast_expression "(void *)piVar12[0x19]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x19]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((void *)piVar12[0x1c] != (void *)0x0) {\n      safefree((void *)piVar12[0x1c]);\n    }" if (parenthesized_expression "((void *)piVar12[0x1c] != (void *)0x0)" ( (binary_expression "(void *)piVar12[0x1c] != (void *)0x0" (cast_expression "(void *)piVar12[0x1c]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x1c]" identifier [ number_literal ])) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      safefree((void *)piVar12[0x1c]);\n    }" { (expression_statement "safefree((void *)piVar12[0x1c]);" (call_expression "safefree((void *)piVar12[0x1c])" identifier (argument_list "((void *)piVar12[0x1c])" ( (cast_expression "(void *)piVar12[0x1c]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x1c]" identifier [ number_literal ])) ))) ;) })) (if_statement "if ((piVar12[0xe] != 0) && (ssh->bare_connection == 0)) {\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }" if (parenthesized_expression "((piVar12[0xe] != 0) && (ssh->bare_connection == 0))" ( (binary_expression "(piVar12[0xe] != 0) && (ssh->bare_connection == 0)" (parenthesized_expression "(piVar12[0xe] != 0)" ( (binary_expression "piVar12[0xe] != 0" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(ssh->bare_connection == 0)" ( (binary_expression "ssh->bare_connection == 0" (field_expression "ssh->bare_connection" identifier -> field_identifier) == number_literal) ))) )) (compound_statement "{\n      do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);\n    }" { (expression_statement "do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0);" (call_expression "do_ssh2_transport(ssh,"enabling delayed compression",-2,(Packet *)0x0)" identifier (argument_list "(ssh,"enabling delayed compression",-2,(Packet *)0x0)" ( identifier , (string_literal ""enabling delayed compression"" " string_content ") , number_literal , (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "ptVar13 = newtree234(ssh_channelcmp);" (assignment_expression "ptVar13 = newtree234(ssh_channelcmp)" identifier = (call_expression "newtree234(ssh_channelcmp)" identifier (argument_list "(ssh_channelcmp)" ( identifier )))) ;) (expression_statement "ssh->channels = ptVar13;" (assignment_expression "ssh->channels = ptVar13" (field_expression "ssh->channels" identifier -> field_identifier) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;" (assignment_expression "ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust" (subscript_expression "ssh->packet_dispatch[0x5d]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x50] = ssh2_msg_global_request;" (assignment_expression "ssh->packet_dispatch[0x50] = ssh2_msg_global_request" (subscript_expression "ssh->packet_dispatch[0x50]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x2d);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x2d)" identifier = (call_expression "conf_get_int(ssh->conf,0x2d)" identifier (argument_list "(ssh->conf,0x2d)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      psVar16 = (ssh_channel *)safemalloc(1,0x5c);\n      ssh->mainchan = psVar16;\n      psVar16->ssh = ssh;\n      ssh_channel_init(psVar16);\n      pcVar19 = conf_get_str(ssh->conf,0x2e);\n      if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }\nLAB_0002e0c6:\n      *piVar12 = 0x2a03;\n      goto LAB_0002d320;\n    }" { (expression_statement "psVar16 = (ssh_channel *)safemalloc(1,0x5c);" (assignment_expression "psVar16 = (ssh_channel *)safemalloc(1,0x5c)" identifier = (cast_expression "(ssh_channel *)safemalloc(1,0x5c)" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(1,0x5c)" identifier (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "ssh->mainchan = psVar16;" (assignment_expression "ssh->mainchan = psVar16" (field_expression "ssh->mainchan" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar16->ssh = ssh;" (assignment_expression "psVar16->ssh = ssh" (field_expression "psVar16->ssh" identifier -> field_identifier) = identifier) ;) (expression_statement "ssh_channel_init(psVar16);" (call_expression "ssh_channel_init(psVar16)" identifier (argument_list "(psVar16)" ( identifier ))) ;) (expression_statement "pcVar19 = conf_get_str(ssh->conf,0x2e);" (assignment_expression "pcVar19 = conf_get_str(ssh->conf,0x2e)" identifier = (call_expression "conf_get_str(ssh->conf,0x2e)" identifier (argument_list "(ssh->conf,0x2e)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (*pcVar19 == '\0') {\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }" if (parenthesized_expression "(*pcVar19 == '\0')" ( (binary_expression "*pcVar19 == '\0'" (pointer_expression "*pcVar19" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );\n        piVar12[0x2e] = (int)pPVar11;\n        logevent(ssh->frontend,"Opening session as main channel");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        ssh->ncmode = 0;\n      }" { (expression_statement "pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    );" (assignment_expression "pPVar11 = ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    )" identifier = (call_expression "ssh2_chanopen_init((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    )" identifier (argument_list "((ssh_channel *)&ssh->mainchan->localid,\n                                     (char *)&(ssh->mainchan->v).v2.locwindow,(ssh_channel *)0x71f45\n                                    )" ( (cast_expression "(ssh_channel *)&ssh->mainchan->localid" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ssh->mainchan->localid" & (field_expression "ssh->mainchan->localid" (field_expression "ssh->mainchan" identifier -> field_identifier) -> field_identifier))) , (cast_expression "(char *)&(ssh->mainchan->v).v2.locwindow" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(ssh->mainchan->v).v2.locwindow" & (field_expression "(ssh->mainchan->v).v2.locwindow" (field_expression "(ssh->mainchan->v).v2" (parenthesized_expression "(ssh->mainchan->v)" ( (field_expression "ssh->mainchan->v" (field_expression "ssh->mainchan" identifier -> field_identifier) -> field_identifier) )) . field_identifier) . field_identifier))) , (cast_expression "(ssh_channel *)0x71f45" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "logevent(ssh->frontend,"Opening session as main channel");" (call_expression "logevent(ssh->frontend,"Opening session as main channel")" identifier (argument_list "(ssh->frontend,"Opening session as main channel")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Opening session as main channel"" " string_content ") ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "ssh->ncmode = 0;" (assignment_expression "ssh->ncmode = 0" (field_expression "ssh->ncmode" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }" else (compound_statement "{\n        iVar20 = conf_get_int(ssh->conf,0x2f);\n        pcVar19 = conf_get_str(ssh->conf,0x2e);\n        ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");\n        ssh->ncmode = 1;\n      }" { (expression_statement "iVar20 = conf_get_int(ssh->conf,0x2f);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x2f)" identifier = (call_expression "conf_get_int(ssh->conf,0x2f)" identifier (argument_list "(ssh->conf,0x2f)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "pcVar19 = conf_get_str(ssh->conf,0x2e);" (assignment_expression "pcVar19 = conf_get_str(ssh->conf,0x2e)" identifier = (call_expression "conf_get_str(ssh->conf,0x2e)" identifier (argument_list "(ssh->conf,0x2e)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel");" (call_expression "ssh_send_port_open(ssh->mainchan,pcVar19,iVar20,"main channel")" identifier (argument_list "(ssh->mainchan,pcVar19,iVar20,"main channel")" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , identifier , identifier , (string_literal ""main channel"" " string_content ") ))) ;) (expression_statement "ssh->ncmode = 1;" (assignment_expression "ssh->ncmode = 1" (field_expression "ssh->ncmode" identifier -> field_identifier) = number_literal) ;) }))) (labeled_statement "LAB_0002e0c6:\n      *piVar12 = 0x2a03;" statement_identifier : (expression_statement "*piVar12 = 0x2a03;" (assignment_expression "*piVar12 = 0x2a03" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "ssh->mainchan = (ssh_channel *)0x0;" (assignment_expression "ssh->mainchan = (ssh_channel *)0x0" (field_expression "ssh->mainchan" identifier -> field_identifier) = (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_0002da71:\n    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;" statement_identifier : (expression_statement "ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;" (assignment_expression "ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data" (subscript_expression "ssh->packet_dispatch[0x5f]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;)) (expression_statement "ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;" (assignment_expression "ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data" (subscript_expression "ssh->packet_dispatch[0x5e]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;" (assignment_expression "ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof" (subscript_expression "ssh->packet_dispatch[0x60]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;" (assignment_expression "ssh->packet_dispatch[0x61] = ssh2_msg_channel_close" (subscript_expression "ssh->packet_dispatch[0x61]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;" (assignment_expression "ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation" (subscript_expression "ssh->packet_dispatch[0x5b]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;" (assignment_expression "ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure" (subscript_expression "ssh->packet_dispatch[0x5c]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;" (assignment_expression "ssh->packet_dispatch[0x62] = ssh2_msg_channel_request" (subscript_expression "ssh->packet_dispatch[0x62]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;" (assignment_expression "ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open" (subscript_expression "ssh->packet_dispatch[0x5a]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[99] = ssh2_msg_channel_response;" (assignment_expression "ssh->packet_dispatch[99] = ssh2_msg_channel_response" (subscript_expression "ssh->packet_dispatch[99]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (expression_statement "ssh->packet_dispatch[100] = ssh2_msg_channel_response;" (assignment_expression "ssh->packet_dispatch[100] = ssh2_msg_channel_response" (subscript_expression "ssh->packet_dispatch[100]" (field_expression "ssh->packet_dispatch" identifier -> field_identifier) [ number_literal ]) = identifier) ;) (if_statement "if (ssh->connshare != (void *)0x0) {\n      share_activate(ssh->connshare,ssh->v_s);\n    }" if (parenthesized_expression "(ssh->connshare != (void *)0x0)" ( (binary_expression "ssh->connshare != (void *)0x0" (field_expression "ssh->connshare" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      share_activate(ssh->connshare,ssh->v_s);\n    }" { (expression_statement "share_activate(ssh->connshare,ssh->v_s);" (call_expression "share_activate(ssh->connshare,ssh->v_s)" identifier (argument_list "(ssh->connshare,ssh->v_s)" ( (field_expression "ssh->connshare" identifier -> field_identifier) , (field_expression "ssh->v_s" identifier -> field_identifier) ))) ;) })) (if_statement "if ((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)) {\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }" if (parenthesized_expression "((ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0))" ( (binary_expression "(ssh->mainchan != (ssh_channel *)0x0) && (iVar20 = ssh_is_simple(ssh), iVar20 != 0)" (parenthesized_expression "(ssh->mainchan != (ssh_channel *)0x0)" ( (binary_expression "ssh->mainchan != (ssh_channel *)0x0" (field_expression "ssh->mainchan" identifier -> field_identifier) != (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar20 = ssh_is_simple(ssh), iVar20 != 0)" ( (comma_expression "iVar20 = ssh_is_simple(ssh), iVar20 != 0" (assignment_expression "iVar20 = ssh_is_simple(ssh)" identifier = (call_expression "ssh_is_simple(ssh)" identifier (argument_list "(ssh)" ( identifier )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh2_pkt_send(ssh,pPVar11);\n    }" { (expression_statement "pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0);" (assignment_expression "pPVar11 = ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0)" identifier = (call_expression "ssh2_chanreq_init(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0)" identifier (argument_list "(ssh->mainchan,"simple@putty.projects.tartarus.org",\n                                  (cchandler_fn_t)0x0,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (string_literal ""simple@putty.projects.tartarus.org"" " string_content ") , (cast_expression "(cchandler_fn_t)0x0" ( (type_descriptor "cchandler_fn_t" type_identifier) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh2_pkt_send(ssh,pPVar11);" (call_expression "ssh2_pkt_send(ssh,pPVar11)" identifier (argument_list "(ssh,pPVar11)" ( identifier , identifier ))) ;) })) (expression_statement "ssh_setup_portfwd(ssh,ssh->conf);" (call_expression "ssh_setup_portfwd(ssh,ssh->conf)" identifier (argument_list "(ssh,ssh->conf)" ( identifier , (field_expression "ssh->conf" identifier -> field_identifier) ))) ;) (if_statement "if ((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)) {\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "((ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0))" ( (binary_expression "(ssh->mainchan == (ssh_channel *)0x0) || (ssh->ncmode != 0)" (parenthesized_expression "(ssh->mainchan == (ssh_channel *)0x0)" ( (binary_expression "ssh->mainchan == (ssh_channel *)0x0" (field_expression "ssh->mainchan" identifier -> field_identifier) == (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(ssh->ncmode != 0)" ( (binary_expression "ssh->ncmode != 0" (field_expression "ssh->ncmode" identifier -> field_identifier) != number_literal) ))) )) (compound_statement "{\n      ssh->echoing = 1;\n      ssh->editing = 1;\nLAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;\n      if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }\n      if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }\n      if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }\nLAB_0002db95:\n      *piVar12 = 0x2abd;\n      goto LAB_0002d320;\n    }" { (expression_statement "ssh->echoing = 1;" (assignment_expression "ssh->echoing = 1" (field_expression "ssh->echoing" identifier -> field_identifier) = number_literal) ;) (expression_statement "ssh->editing = 1;" (assignment_expression "ssh->editing = 1" (field_expression "ssh->editing" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0002db48:\n      ssh->state = ADDRTYPE_NAME;" statement_identifier : (expression_statement "ssh->state = ADDRTYPE_NAME;" (assignment_expression "ssh->state = ADDRTYPE_NAME" (field_expression "ssh->state" identifier -> field_identifier) = identifier) ;)) (if_statement "if (ssh->size_needed != 0) {\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }" if (parenthesized_expression "(ssh->size_needed != 0)" ( (binary_expression "ssh->size_needed != 0" (field_expression "ssh->size_needed" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        ssh_size(ssh,ssh->term_width,ssh->term_height);\n      }" { (expression_statement "ssh_size(ssh,ssh->term_width,ssh->term_height);" (call_expression "ssh_size(ssh,ssh->term_width,ssh->term_height)" identifier (argument_list "(ssh,ssh->term_width,ssh->term_height)" ( identifier , (field_expression "ssh->term_width" identifier -> field_identifier) , (field_expression "ssh->term_height" identifier -> field_identifier) ))) ;) })) (if_statement "if (ssh->eof_needed != 0) {\n        ssh_special(ssh,TS_EOF);\n      }" if (parenthesized_expression "(ssh->eof_needed != 0)" ( (binary_expression "ssh->eof_needed != 0" (field_expression "ssh->eof_needed" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n        ssh_special(ssh,TS_EOF);\n      }" { (expression_statement "ssh_special(ssh,TS_EOF);" (call_expression "ssh_special(ssh,TS_EOF)" identifier (argument_list "(ssh,TS_EOF)" ( identifier , identifier ))) ;) })) (if_statement "if (ssh->ldisc != (void *)0x0) {\n        ldisc_echoedit_update(ssh->ldisc);\n      }" if (parenthesized_expression "(ssh->ldisc != (void *)0x0)" ( (binary_expression "ssh->ldisc != (void *)0x0" (field_expression "ssh->ldisc" identifier -> field_identifier) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ldisc_echoedit_update(ssh->ldisc);\n      }" { (expression_statement "ldisc_echoedit_update(ssh->ldisc);" (call_expression "ldisc_echoedit_update(ssh->ldisc)" identifier (argument_list "(ssh->ldisc)" ( (field_expression "ssh->ldisc" identifier -> field_identifier) ))) ;) })) (if_statement "if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh->send_ok = 1;\n      }" if (parenthesized_expression "(ssh->mainchan != (ssh_channel *)0x0)" ( (binary_expression "ssh->mainchan != (ssh_channel *)0x0" (field_expression "ssh->mainchan" identifier -> field_identifier) != (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ssh->send_ok = 1;\n      }" { (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) })) (labeled_statement "LAB_0002db95:\n      *piVar12 = 0x2abd;" statement_identifier : (expression_statement "*piVar12 = 0x2abd;" (assignment_expression "*piVar12 = 0x2abd" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x95);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x95)" identifier = (call_expression "conf_get_int(ssh->conf,0x95)" identifier (argument_list "(ssh->conf,0x95)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar20 != 0) {\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      pCVar5 = ssh->conf;\n      pcVar19 = conf_get_str(pCVar5,0x96);\n      pXVar27 = x11_setup_display(pcVar19,pCVar5);\n      ssh->x11disp = pXVar27;\n      if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }\n    }" { (expression_statement "pCVar5 = ssh->conf;" (assignment_expression "pCVar5 = ssh->conf" identifier = (field_expression "ssh->conf" identifier -> field_identifier)) ;) (expression_statement "pcVar19 = conf_get_str(pCVar5,0x96);" (assignment_expression "pcVar19 = conf_get_str(pCVar5,0x96)" identifier = (call_expression "conf_get_str(pCVar5,0x96)" identifier (argument_list "(pCVar5,0x96)" ( identifier , number_literal )))) ;) (expression_statement "pXVar27 = x11_setup_display(pcVar19,pCVar5);" (assignment_expression "pXVar27 = x11_setup_display(pcVar19,pCVar5)" identifier = (call_expression "x11_setup_display(pcVar19,pCVar5)" identifier (argument_list "(pcVar19,pCVar5)" ( identifier , identifier )))) ;) (expression_statement "ssh->x11disp = pXVar27;" (assignment_expression "ssh->x11disp = pXVar27" (field_expression "ssh->x11disp" identifier -> field_identifier) = identifier) ;) (if_statement "if (pXVar27 == (X11Display *)0x0) {\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }\n      else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }" if (parenthesized_expression "(pXVar27 == (X11Display *)0x0)" ( (binary_expression "pXVar27 == (X11Display *)0x0" identifier == (cast_expression "(X11Display *)0x0" ( (type_descriptor "X11Display *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");\n      }" { (expression_statement "logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");" (call_expression "logevent(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display")" identifier (argument_list "(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""X11 forwarding not enabled: unable to initialise X display"" " string_content ") ))) ;) }) (else_clause "else {\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }" else (compound_statement "{\n        iVar20 = conf_get_int(ssh->conf,0x97);\n        pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);\n        ssh->x11auth = pXVar28;\n        pXVar28->disp = ssh->x11disp;\n        ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n      }" { (expression_statement "iVar20 = conf_get_int(ssh->conf,0x97);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x97)" identifier = (call_expression "conf_get_int(ssh->conf,0x97)" identifier (argument_list "(ssh->conf,0x97)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20);" (assignment_expression "pXVar28 = x11_invent_fake_auth(ssh->x11authtree,iVar20)" identifier = (call_expression "x11_invent_fake_auth(ssh->x11authtree,iVar20)" identifier (argument_list "(ssh->x11authtree,iVar20)" ( (field_expression "ssh->x11authtree" identifier -> field_identifier) , identifier )))) ;) (expression_statement "ssh->x11auth = pXVar28;" (assignment_expression "ssh->x11auth = pXVar28" (field_expression "ssh->x11auth" identifier -> field_identifier) = identifier) ;) (expression_statement "pXVar28->disp = ssh->x11disp;" (assignment_expression "pXVar28->disp = ssh->x11disp" (field_expression "pXVar28->disp" identifier -> field_identifier) = (field_expression "ssh->x11disp" identifier -> field_identifier)) ;) (expression_statement "ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0);" (call_expression "ssh2_setup_x11(ssh->mainchan,(Packet *)0x0,(void *)0x0)" identifier (argument_list "(ssh->mainchan,(Packet *)0x0,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) }))) })) (expression_statement "iVar20 = ssh_agent_forwarding_permitted(ssh);" (assignment_expression "iVar20 = ssh_agent_forwarding_permitted(ssh)" identifier = (call_expression "ssh_agent_forwarding_permitted(ssh)" identifier (argument_list "(ssh)" ( identifier )))) ;) (if_statement "if (iVar20 != 0) {\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n      ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }" { (expression_statement "ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0);" (call_expression "ssh2_setup_agent(ssh->mainchan,(Packet *)0x0,(void *)0x0)" identifier (argument_list "(ssh->mainchan,(Packet *)0x0,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x16);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x16)" identifier = (call_expression "conf_get_int(ssh->conf,0x16)" identifier (argument_list "(ssh->conf,0x16)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar20 == 0) {\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n      ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);\n    }" { (expression_statement "ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0);" (call_expression "ssh2_setup_pty(ssh->mainchan,(Packet *)0x0,(void *)0x0)" identifier (argument_list "(ssh->mainchan,(Packet *)0x0,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) })) (expression_statement "ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0);" (call_expression "ssh2_setup_env(ssh->mainchan,(Packet *)0x0,(void *)0x0)" identifier (argument_list "(ssh->mainchan,(Packet *)0x0,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (if_statement "if (ssh->fallback_cmd == 0) {\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }\n    else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }" if (parenthesized_expression "(ssh->fallback_cmd == 0)" ( (binary_expression "ssh->fallback_cmd == 0" (field_expression "ssh->fallback_cmd" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);\n      iVar20 = 0x14;\n    }" { (expression_statement "local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b);" (assignment_expression "local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2b)" identifier = (cast_expression "(ssh2_userkey *)conf_get_int(ssh->conf,0x2b)" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_int(ssh->conf,0x2b)" identifier (argument_list "(ssh->conf,0x2b)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal ))))) ;) (expression_statement "iVar20 = 0x14;" (assignment_expression "iVar20 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }" else (compound_statement "{\nLAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);\n      iVar20 = 0x15;\n    }" { (labeled_statement "LAB_0002feab:\n      local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);" statement_identifier : (expression_statement "local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c);" (assignment_expression "local_64 = (ssh2_userkey *)conf_get_int(ssh->conf,0x2c)" identifier = (cast_expression "(ssh2_userkey *)conf_get_int(ssh->conf,0x2c)" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "conf_get_int(ssh->conf,0x2c)" identifier (argument_list "(ssh->conf,0x2c)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal ))))) ;)) (expression_statement "iVar20 = 0x15;" (assignment_expression "iVar20 = 0x15" identifier = number_literal) ;) }))) (expression_statement "pcVar19 = conf_get_str(ssh->conf,iVar20);" (assignment_expression "pcVar19 = conf_get_str(ssh->conf,iVar20)" identifier = (call_expression "conf_get_str(ssh->conf,iVar20)" identifier (argument_list "(ssh->conf,iVar20)" ( (field_expression "ssh->conf" identifier -> field_identifier) , identifier )))) ;) (if_statement "if (local_64 == (ssh2_userkey *)0x0) {\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }\n    else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }" if (parenthesized_expression "(local_64 == (ssh2_userkey *)0x0)" ( (binary_expression "local_64 == (ssh2_userkey *)0x0" identifier == (cast_expression "(ssh2_userkey *)0x0" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n    }" { (if_statement "if (*pcVar19 != '\0') {\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }" if (parenthesized_expression "(*pcVar19 != '\0')" ( (binary_expression "*pcVar19 != '\0'" (pointer_expression "*pcVar19" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        pcVar35 = "exec";\n        goto LAB_0002f28b;\n      }" { (expression_statement "pcVar35 = "exec";" (assignment_expression "pcVar35 = "exec"" identifier = (string_literal ""exec"" " string_content ")) ;) (goto_statement "goto LAB_0002f28b;" goto statement_identifier ;) })) (expression_statement "pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);" (assignment_expression "pPVar11 = ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0)" identifier = (call_expression "ssh2_chanreq_init(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0)" identifier (argument_list "(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (string_literal ""shell"" " string_content ") , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) }) (else_clause "else {\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }" else (compound_statement "{\n      pcVar35 = "subsystem";\nLAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);\n      piVar12[0x2e] = (int)pPVar11;\n      ssh_pkt_addstring(pPVar11,pcVar19);\n      pPVar11 = (Packet *)piVar12[0x2e];\n    }" { (expression_statement "pcVar35 = "subsystem";" (assignment_expression "pcVar35 = "subsystem"" identifier = (string_literal ""subsystem"" " string_content ")) ;) (labeled_statement "LAB_0002f28b:\n      pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);" statement_identifier : (expression_statement "pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0);" (assignment_expression "pPVar11 = ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0)" identifier = (call_expression "ssh2_chanreq_init(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0)" identifier (argument_list "(ssh->mainchan,pcVar35,ssh2_response_authconn,(void *)0x0)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , identifier , identifier , (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;)) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) }))) (expression_statement "ssh2_pkt_send(ssh,pPVar11);" (call_expression "ssh2_pkt_send(ssh,pPVar11)" identifier (argument_list "(ssh,pPVar11)" ( identifier , identifier ))) ;) }) (else_clause "else {\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }" else (compound_statement "{\n    iVar20 = *piVar12;\n    if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }\n    if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }\n    if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }\n    if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }\n  }" { (expression_statement "iVar20 = *piVar12;" (assignment_expression "iVar20 = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (if_statement "if (iVar20 == 0x27b6) {\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 == 0x27b6)" ( (binary_expression "iVar20 == 0x27b6" identifier == number_literal) )) (compound_statement "{\n      if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }\n      if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }\n      iVar20 = piVar12[3];\nLAB_0002d2f8:\n      methods = (char *)0x0;\n      error = (char *)0x0;\n      if (iVar20 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n      ch = &ssh->banner;\n      sVar9 = bufchain_size(ch);\n      if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }\n      bufchain_clear(ch);\n      if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }\n      if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;\n      if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }\n      if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }\n      if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }\n      if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }\n      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;\n      ppVar18 = new_prompts(ssh->frontend);\n      piVar12[0xf] = (int)ppVar18;\n      ppVar18->to_server = 1;\n      pcVar19 = dupstr("SSH password");\n      ppVar18->name = pcVar19;\n      pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);\n      add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n      iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }\n      ppVar18 = (prompts_t *)piVar12[0xf];\n      if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }\nLAB_0002ea6c:\n      free_prompts(ppVar18);\nLAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" { (if_statement "if (pktin == (Packet *)0x0) {\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d664:\n        *piVar12 = 0x27b6;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002d664:\n        *piVar12 = 0x27b6;" statement_identifier : (expression_statement "*piVar12 = 0x27b6;" (assignment_expression "*piVar12 = 0x27b6" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (pktin->type == 0x3c) {\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }\n      else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }" if (parenthesized_expression "(pktin->type == 0x3c)" ( (binary_expression "pktin->type == 0x3c" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        ssh_pkt_getstring(pktin,&methods,&len);\n        piVar12[0x34] = len;\n        sVar8 = piVar12[0x32];\n        piVar12[0x35] = (int)methods;\n        if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }\n      }" { (expression_statement "ssh_pkt_getstring(pktin,&methods,&len);" (call_expression "ssh_pkt_getstring(pktin,&methods,&len)" identifier (argument_list "(pktin,&methods,&len)" ( identifier , (pointer_expression "&methods" & identifier) , (pointer_expression "&len" & identifier) ))) ;) (expression_statement "piVar12[0x34] = len;" (assignment_expression "piVar12[0x34] = len" (subscript_expression "piVar12[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar8 = piVar12[0x32];" (assignment_expression "sVar8 = piVar12[0x32]" identifier = (subscript_expression "piVar12[0x32]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x35] = (int)methods;" (assignment_expression "piVar12[0x35] = (int)methods" (subscript_expression "piVar12[0x35]" identifier [ number_literal ]) = (cast_expression "(int)methods" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)) {\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }\n        else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }" if (parenthesized_expression "((((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0))" ( (binary_expression "(((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])) &&\n           (iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)" (parenthesized_expression "(((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1]))" ( (binary_expression "((len == sVar8 + 2) && (*methods == '\x06')) && (sVar8 == (int)methods[1])" (parenthesized_expression "((len == sVar8 + 2) && (*methods == '\x06'))" ( (binary_expression "(len == sVar8 + 2) && (*methods == '\x06')" (parenthesized_expression "(len == sVar8 + 2)" ( (binary_expression "len == sVar8 + 2" identifier == (binary_expression "sVar8 + 2" identifier + number_literal)) )) && (parenthesized_expression "(*methods == '\x06')" ( (binary_expression "*methods == '\x06'" (pointer_expression "*methods" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(sVar8 == (int)methods[1])" ( (binary_expression "sVar8 == (int)methods[1]" identifier == (cast_expression "(int)methods[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "methods[1]" identifier [ number_literal ]))) ))) )) && (parenthesized_expression "(iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0)" ( (comma_expression "iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8), iVar20 == 0" (assignment_expression "iVar20 = memcmp(methods + 2,(void *)piVar12[0x33],sVar8)" identifier = (call_expression "memcmp(methods + 2,(void *)piVar12[0x33],sVar8)" identifier (argument_list "(methods + 2,(void *)piVar12[0x33],sVar8)" ( (binary_expression "methods + 2" identifier + number_literal) , (cast_expression "(void *)piVar12[0x33]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x33]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);\n          piVar12[0x39] = iVar20;\n          if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }\n        }" { (expression_statement "iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38);" (assignment_expression "iVar20 = (**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38)" identifier = (call_expression "(**(code **)(piVar12[0x30] + 0xc))\n                             (piVar12[0x30],ssh->fullhostname,piVar12 + 0x38)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0xc))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0xc)" * (pointer_expression "*(code **)(piVar12[0x30] + 0xc)" * (cast_expression "(code **)(piVar12[0x30] + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0xc)" ( (binary_expression "piVar12[0x30] + 0xc" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],ssh->fullhostname,piVar12 + 0x38)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (field_expression "ssh->fullhostname" identifier -> field_identifier) , (binary_expression "piVar12 + 0x38" identifier + number_literal) )))) ;) (expression_statement "piVar12[0x39] = iVar20;" (assignment_expression "piVar12[0x39] = iVar20" (subscript_expression "piVar12[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar20 == 0) {\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }\n          else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);\n            piVar12[0x39] = iVar20;\n            if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }\n          }" { (expression_statement "iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31);" (assignment_expression "iVar20 = (**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31)" identifier = (call_expression "(**(code **)(piVar12[0x30] + 0x1c))(piVar12[0x30],piVar12 + 0x31)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x1c))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x1c)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x1c)" * (cast_expression "(code **)(piVar12[0x30] + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x1c)" ( (binary_expression "piVar12[0x30] + 0x1c" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12 + 0x31)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x31" identifier + number_literal) )))) ;) (expression_statement "piVar12[0x39] = iVar20;" (assignment_expression "piVar12[0x39] = iVar20" (subscript_expression "piVar12[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar20 == 0) {\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }\n            else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              piVar12[0x34] = 0;\n              piVar12[0x35] = 0;\n              piVar12[0x36] = 0;\n              piVar12[0x37] = 0;\nLAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              pcVar6 = *(code **)(piVar12[0x30] + 0x14);\n              iVar20 = conf_get_int(ssh->conf,0x28);\n              uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);\n              piVar12[0x39] = uVar22;\n              if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }\nLAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }\n              local_60 = (char **)(piVar12 + 0x38);\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);\n              (**(code **)(iVar20 + 0x10))(iVar20,local_60);\n              (**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);\n            }" { (expression_statement "piVar12[0x34] = 0;" (assignment_expression "piVar12[0x34] = 0" (subscript_expression "piVar12[0x34]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x35] = 0;" (assignment_expression "piVar12[0x35] = 0" (subscript_expression "piVar12[0x35]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x36] = 0;" (assignment_expression "piVar12[0x36] = 0" (subscript_expression "piVar12[0x36]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0x37] = 0;" (assignment_expression "piVar12[0x37] = 0" (subscript_expression "piVar12[0x37]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002efad:\n              local_64 = (ssh2_userkey *)(piVar12 + 0x31);" statement_identifier : (expression_statement "local_64 = (ssh2_userkey *)(piVar12 + 0x31);" (assignment_expression "local_64 = (ssh2_userkey *)(piVar12 + 0x31)" identifier = (cast_expression "(ssh2_userkey *)(piVar12 + 0x31)" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 0x31)" ( (binary_expression "piVar12 + 0x31" identifier + number_literal) )))) ;)) (expression_statement "pcVar6 = *(code **)(piVar12[0x30] + 0x14);" (assignment_expression "pcVar6 = *(code **)(piVar12[0x30] + 0x14)" identifier = (pointer_expression "*(code **)(piVar12[0x30] + 0x14)" * (cast_expression "(code **)(piVar12[0x30] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x14)" ( (binary_expression "piVar12[0x30] + 0x14" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x28);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x28)" identifier = (call_expression "conf_get_int(ssh->conf,0x28)" identifier (argument_list "(ssh->conf,0x28)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36);" (assignment_expression "uVar22 = (*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36)" identifier = (call_expression "(*pcVar6)(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(piVar12[0x30],local_64,piVar12[0x38],iVar20,piVar12 + 0x34,\n                                 piVar12 + 0x36)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , identifier , (subscript_expression "piVar12[0x38]" identifier [ number_literal ]) , identifier , (binary_expression "piVar12 + 0x34" identifier + number_literal) , (binary_expression "piVar12 + 0x36" identifier + number_literal) )))) ;) (expression_statement "piVar12[0x39] = uVar22;" (assignment_expression "piVar12[0x39] = uVar22" (subscript_expression "piVar12[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar22 < 2) {\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }\n              else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }" if (parenthesized_expression "(uVar22 < 2)" ( (binary_expression "uVar22 < 2" identifier < number_literal) )) (compound_statement "{\n                logevent(ssh->frontend,"GSSAPI authentication initialised");\n                if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }\n                iVar20 = piVar12[0x39];\n                if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }\n              }" { (expression_statement "logevent(ssh->frontend,"GSSAPI authentication initialised");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication initialised")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication initialised")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication initialised"" " string_content ") ))) ;) (if_statement "if (piVar12[0x36] != 0) {\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }" if (parenthesized_expression "(piVar12[0x36] != 0)" ( (binary_expression "piVar12[0x36] != 0" (subscript_expression "piVar12[0x36]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                  pPVar11 = ssh2_pkt_init(0x3d);\n                  piVar12[0x2e] = (int)pPVar11;\n                  x[0] = '\0';\n                  x[1] = '\0';\n                  x[2] = '\0';\n                  x[3] = '\0';\n                  ssh_pkt_adddata(pPVar11,x,4);\n                  pcVar19 = (char *)piVar12[0x37];\n                  pPVar11->savedpos = pPVar11->length;\n                  ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);\n                  ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                  (**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);\n                }" { (expression_statement "pPVar11 = ssh2_pkt_init(0x3d);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x3d)" identifier = (call_expression "ssh2_pkt_init(0x3d)" identifier (argument_list "(0x3d)" ( number_literal )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar19 = (char *)piVar12[0x37];" (assignment_expression "pcVar19 = (char *)piVar12[0x37]" identifier = (cast_expression "(char *)piVar12[0x37]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x37]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36]);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36])" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,piVar12[0x36])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , (subscript_expression "piVar12[0x36]" identifier [ number_literal ]) ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "(**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00);" (call_expression "(**(code **)(piVar12[0x30] + 0x18))\n                            (piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x18))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x18)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x18)" * (cast_expression "(code **)(piVar12[0x30] + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x18)" ( (binary_expression "piVar12[0x30] + 0x18" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12 + 0x36,extraout_EDX_00,extraout_EDX_00)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x36" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "iVar20 = piVar12[0x39];" (assignment_expression "iVar20 = piVar12[0x39]" identifier = (subscript_expression "piVar12[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 == 1) {\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }" if (parenthesized_expression "(iVar20 == 1)" ( (binary_expression "iVar20 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002fcf7:\n                  *piVar12 = 0x2807;\n                  goto LAB_0002d320;\n                }" { (labeled_statement "LAB_0002fcf7:\n                  *piVar12 = 0x2807;" statement_identifier : (expression_statement "*piVar12 = 0x2807;" (assignment_expression "*piVar12 = 0x2807" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }" else (compound_statement "{\n                logevent(ssh->frontend,"GSSAPI authentication initialisation failed");\n                iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);\n                if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }\n              }" { (expression_statement "logevent(ssh->frontend,"GSSAPI authentication initialisation failed");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication initialisation failed")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication initialisation failed")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication initialisation failed"" " string_content ") ))) ;) (expression_statement "iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22);" (assignment_expression "iVar20 = (**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22)" identifier = (call_expression "(**(code **)(piVar12[0x30] + 0x2c))\n                                   (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x2c))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x2c)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x2c)" * (cast_expression "(code **)(piVar12[0x30] + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x2c)" ( (binary_expression "piVar12[0x30] + 0x2c" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12[0x31],piVar12 + 0x32,uVar22)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar12[0x31]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x32" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar20 == 0) {\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }\n                else {\n                  iVar20 = piVar12[0x39];\n                }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                  logevent(ssh->frontend,(char *)piVar12[0x33]);\n                  safefree((void *)piVar12[0x33]);\n                  iVar20 = piVar12[0x39];\n                }" { (expression_statement "logevent(ssh->frontend,(char *)piVar12[0x33]);" (call_expression "logevent(ssh->frontend,(char *)piVar12[0x33])" identifier (argument_list "(ssh->frontend,(char *)piVar12[0x33])" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (cast_expression "(char *)piVar12[0x33]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x33]" identifier [ number_literal ])) ))) ;) (expression_statement "safefree((void *)piVar12[0x33]);" (call_expression "safefree((void *)piVar12[0x33])" identifier (argument_list "((void *)piVar12[0x33])" ( (cast_expression "(void *)piVar12[0x33]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x33]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar20 = piVar12[0x39];" (assignment_expression "iVar20 = piVar12[0x39]" identifier = (subscript_expression "piVar12[0x39]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                  iVar20 = piVar12[0x39];\n                }" else (compound_statement "{\n                  iVar20 = piVar12[0x39];\n                }" { (expression_statement "iVar20 = piVar12[0x39];" (assignment_expression "iVar20 = piVar12[0x39]" identifier = (subscript_expression "piVar12[0x39]" identifier [ number_literal ])) ;) }))) }))) (labeled_statement "LAB_0002f049:\n              if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }" statement_identifier : (if_statement "if (iVar20 == 0) {\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }\n              else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n                logevent(ssh->frontend,"GSSAPI authentication loop finished OK");\n                pPVar11 = ssh2_pkt_init(0);\n                iVar20 = pPVar11->length;\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );\n                error = (char *)CONCAT31(error._1_3_,0x32);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n                iVar33 = ((int *)piVar12[0x2e])[4];\n                piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;\n                piVar12[0x33] = iVar33 + iVar20;\n                (**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);\n                pPVar11 = ssh2_pkt_init(0x42);\n                piVar12[0x2e] = (int)pPVar11;\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                (**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);\n                piVar12[3] = 0;\n                iVar20 = piVar12[0x30];\n              }" { (expression_statement "logevent(ssh->frontend,"GSSAPI authentication loop finished OK");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication loop finished OK")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication loop finished OK")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication loop finished OK"" " string_content ") ))) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0);" (assignment_expression "pPVar11 = ssh2_pkt_init(0)" identifier = (call_expression "ssh2_pkt_init(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "iVar20 = pPVar11->length;" (assignment_expression "iVar20 = pPVar11->length" identifier = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          );" (call_expression "ssh_pkt_addstring_data\n                          ((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          )" identifier (argument_list "((Packet *)piVar12[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len\n                          )" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(char *)ssh->v2_session_id" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "ssh->v2_session_id" identifier -> field_identifier)) , (field_expression "ssh->v2_session_id_len" identifier -> field_identifier) ))) ;) (expression_statement "error = (char *)CONCAT31(error._1_3_,0x32);" (assignment_expression "error = (char *)CONCAT31(error._1_3_,0x32)" identifier = (cast_expression "(char *)CONCAT31(error._1_3_,0x32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(error._1_3_,0x32)" identifier (argument_list "(error._1_3_,0x32)" ( (field_expression "error._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&error,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&error" & identifier) , number_literal ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username);" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],ssh->username)" identifier (argument_list "((Packet *)piVar12[0x2e],ssh->username)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (field_expression "ssh->username" identifier -> field_identifier) ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic")" identifier (argument_list "((Packet *)piVar12[0x2e],"gssapi-with-mic")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""gssapi-with-mic"" " string_content ") ))) ;) (expression_statement "iVar33 = ((int *)piVar12[0x2e])[4];" (assignment_expression "iVar33 = ((int *)piVar12[0x2e])[4]" identifier = (subscript_expression "((int *)piVar12[0x2e])[4]" (parenthesized_expression "((int *)piVar12[0x2e])" ( (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20;" (assignment_expression "piVar12[0x32] = *(int *)piVar12[0x2e] - iVar20" (subscript_expression "piVar12[0x32]" identifier [ number_literal ]) = (binary_expression "*(int *)piVar12[0x2e] - iVar20" (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) - identifier)) ;) (expression_statement "piVar12[0x33] = iVar33 + iVar20;" (assignment_expression "piVar12[0x33] = iVar33 + iVar20" (subscript_expression "piVar12[0x33]" identifier [ number_literal ]) = (binary_expression "iVar33 + iVar20" identifier + identifier)) ;) (expression_statement "(**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error);" (call_expression "(**(code **)(piVar12[0x30] + 0x24))\n                          (piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x24))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x24)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x24)" * (cast_expression "(code **)(piVar12[0x30] + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x24)" ( (binary_expression "piVar12[0x30] + 0x24" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12[0x31],piVar12 + 0x32,&error)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar12[0x31]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x32" identifier + number_literal) , (pointer_expression "&error" & identifier) ))) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x42);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x42)" identifier = (call_expression "ssh2_pkt_init(0x42)" identifier (argument_list "(0x42)" ( number_literal )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],local_28,(int)error)" identifier (argument_list "((Packet *)piVar12[0x2e],local_28,(int)error)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "(**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error);" (call_expression "(**(code **)(piVar12[0x30] + 0x28))(piVar12[0x30],&error)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x28))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x28)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x28)" * (cast_expression "(code **)(piVar12[0x30] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x28)" ( (binary_expression "piVar12[0x30] + 0x28" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],&error)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (pointer_expression "&error" & identifier) ))) ;) (expression_statement "piVar12[3] = 0;" (assignment_expression "piVar12[3] = 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar20 = piVar12[0x30];" (assignment_expression "iVar20 = piVar12[0x30]" identifier = (subscript_expression "piVar12[0x30]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }" else (compound_statement "{\nLAB_0002e970:\n                iVar20 = piVar12[0x30];\n              }" { (labeled_statement "LAB_0002e970:\n                iVar20 = piVar12[0x30];" statement_identifier : (expression_statement "iVar20 = piVar12[0x30];" (assignment_expression "iVar20 = piVar12[0x30]" identifier = (subscript_expression "piVar12[0x30]" identifier [ number_literal ])) ;)) })))) (expression_statement "local_60 = (char **)(piVar12 + 0x38);" (assignment_expression "local_60 = (char **)(piVar12 + 0x38)" identifier = (cast_expression "(char **)(piVar12 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12 + 0x38)" ( (binary_expression "piVar12 + 0x38" identifier + number_literal) )))) ;) (expression_statement "local_64 = (ssh2_userkey *)(piVar12 + 0x31);" (assignment_expression "local_64 = (ssh2_userkey *)(piVar12 + 0x31)" identifier = (cast_expression "(ssh2_userkey *)(piVar12 + 0x31)" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12 + 0x31)" ( (binary_expression "piVar12 + 0x31" identifier + number_literal) )))) ;) (expression_statement "(**(code **)(iVar20 + 0x10))(iVar20,local_60);" (call_expression "(**(code **)(iVar20 + 0x10))(iVar20,local_60)" (parenthesized_expression "(**(code **)(iVar20 + 0x10))" ( (pointer_expression "**(code **)(iVar20 + 0x10)" * (pointer_expression "*(code **)(iVar20 + 0x10)" * (cast_expression "(code **)(iVar20 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) )) (argument_list "(iVar20,local_60)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64);" (call_expression "(**(code **)(piVar12[0x30] + 0x20))(piVar12[0x30],local_64)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x20))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x20)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x20)" * (cast_expression "(code **)(piVar12[0x30] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x20)" ( (binary_expression "piVar12[0x30] + 0x20" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],local_64)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , identifier ))) ;) }) (else_clause "else {\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }" else (compound_statement "{\n              iVar33 = iVar20;\n              logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");\n              (**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);\n            }" { (expression_statement "iVar33 = iVar20;" (assignment_expression "iVar33 = iVar20" identifier = identifier) ;) (expression_statement "logevent(ssh->frontend,"GSSAPI authentication failed to get credentials");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication failed to get credentials")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication failed to get credentials")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication failed to get credentials"" " string_content ") ))) ;) (expression_statement "(**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33);" (call_expression "(**(code **)(piVar12[0x30] + 0x10))(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 0x10))" ( (pointer_expression "**(code **)(piVar12[0x30] + 0x10)" * (pointer_expression "*(code **)(piVar12[0x30] + 0x10)" * (cast_expression "(code **)(piVar12[0x30] + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 0x10)" ( (binary_expression "piVar12[0x30] + 0x10" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12 + 0x38,iVar20,iVar33)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x38" identifier + number_literal) , identifier , identifier ))) ;) }))) }) (else_clause "else if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }" else (if_statement "if (iVar20 == 3) {\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }\n          else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }" if (parenthesized_expression "(iVar20 == 3)" ( (binary_expression "iVar20 == 3" identifier == number_literal) )) (compound_statement "{\n            logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");\n          }" { (expression_statement "logevent(ssh->frontend,"GSSAPI import name failed - Bad service name");" (call_expression "logevent(ssh->frontend,"GSSAPI import name failed - Bad service name")" identifier (argument_list "(ssh->frontend,"GSSAPI import name failed - Bad service name")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI import name failed - Bad service name"" " string_content ") ))) ;) }) (else_clause "else {\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }" else (compound_statement "{\n            logevent(ssh->frontend,"GSSAPI import name failed");\n          }" { (expression_statement "logevent(ssh->frontend,"GSSAPI import name failed");" (call_expression "logevent(ssh->frontend,"GSSAPI import name failed")" identifier (argument_list "(ssh->frontend,"GSSAPI import name failed")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI import name failed"" " string_content ") ))) ;) }))))) }) (else_clause "else {\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }" else (compound_statement "{\n          logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");\n        }" { (expression_statement "logevent(ssh->frontend,"GSSAPI authentication - wrong response from server");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication - wrong response from server")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication - wrong response from server")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication - wrong response from server"" " string_content ") ))) ;) }))) }) (else_clause "else {\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }" else (compound_statement "{\n        logevent(ssh->frontend,"GSSAPI authentication request refused");\n      }" { (expression_statement "logevent(ssh->frontend,"GSSAPI authentication request refused");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication request refused")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication request refused")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication request refused"" " string_content ") ))) ;) }))) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0002d2f8:\n      methods = (char *)0x0;" statement_identifier : (expression_statement "methods = (char *)0x0;" (assignment_expression "methods = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "error = (char *)0x0;" (assignment_expression "error = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar20 == 0) goto LAB_0002d310;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;)) (labeled_statement "LAB_0002d3e0:\n      ch = &ssh->banner;" statement_identifier : (expression_statement "ch = &ssh->banner;" (assignment_expression "ch = &ssh->banner" identifier = (pointer_expression "&ssh->banner" & (field_expression "ssh->banner" identifier -> field_identifier))) ;)) (expression_statement "sVar9 = bufchain_size(ch);" (assignment_expression "sVar9 = bufchain_size(ch)" identifier = (call_expression "bufchain_size(ch)" identifier (argument_list "(ch)" ( identifier )))) ;) (if_statement "if ((sVar9 != 0) && (((byte)flags & 5) != 0)) {\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }" if (parenthesized_expression "((sVar9 != 0) && (((byte)flags & 5) != 0))" ( (binary_expression "(sVar9 != 0) && (((byte)flags & 5) != 0)" (parenthesized_expression "(sVar9 != 0)" ( (binary_expression "sVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "(((byte)flags & 5) != 0)" ( (binary_expression "((byte)flags & 5) != 0" (parenthesized_expression "((byte)flags & 5)" ( (binary_expression "(byte)flags & 5" (cast_expression "(byte)flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n        pcVar19 = (char *)safemalloc(sVar9,1);\n        bufchain_fetch(ch,pcVar19,sVar9);\n        puVar26 = PTR_stderr_000a4fa0;\n        if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }\n        safefree(pcVar19);\n      }" { (expression_statement "pcVar19 = (char *)safemalloc(sVar9,1);" (assignment_expression "pcVar19 = (char *)safemalloc(sVar9,1)" identifier = (cast_expression "(char *)safemalloc(sVar9,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(sVar9,1)" identifier (argument_list "(sVar9,1)" ( identifier , number_literal ))))) ;) (expression_statement "bufchain_fetch(ch,pcVar19,sVar9);" (call_expression "bufchain_fetch(ch,pcVar19,sVar9)" identifier (argument_list "(ch,pcVar19,sVar9)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar26 = PTR_stderr_000a4fa0;" (assignment_expression "puVar26 = PTR_stderr_000a4fa0" identifier = identifier) ;) (if_statement "if (((byte)flags & 2) == 0) {\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }\n        else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }" if (parenthesized_expression "(((byte)flags & 2) == 0)" ( (binary_expression "((byte)flags & 2) == 0" (parenthesized_expression "((byte)flags & 2)" ( (binary_expression "(byte)flags & 2" (cast_expression "(byte)flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n          from_backend_untrusted(ssh->frontend,pcVar19,sVar9);\n        }" { (expression_statement "from_backend_untrusted(ssh->frontend,pcVar19,sVar9);" (call_expression "from_backend_untrusted(ssh->frontend,pcVar19,sVar9)" identifier (argument_list "(ssh->frontend,pcVar19,sVar9)" ( (field_expression "ssh->frontend" identifier -> field_identifier) , identifier , identifier ))) ;) }) (else_clause "else {\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }" else (compound_statement "{\n          pcVar35 = pcVar19;\n          if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }\n        }" { (expression_statement "pcVar35 = pcVar19;" (assignment_expression "pcVar35 = pcVar19" identifier = identifier) ;) (if_statement "if (0 < (int)sVar9) {\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }" if (parenthesized_expression "(0 < (int)sVar9)" ( (binary_expression "0 < (int)sVar9" number_literal < (cast_expression "(int)sVar9" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);\n          }" { (do_statement "do {\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            } while (pcVar35 != pcVar19 + sVar9);" do (compound_statement "{\n              cVar3 = *pcVar35;\n              if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }\n              pcVar35 = pcVar35 + 1;\n            }" { (expression_statement "cVar3 = *pcVar35;" (assignment_expression "cVar3 = *pcVar35" identifier = (pointer_expression "*pcVar35" * identifier)) ;) (if_statement "if ((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))) {\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }" if (parenthesized_expression "((cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0))))" ( (binary_expression "(cVar3 != '\r') && ((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))" (parenthesized_expression "(cVar3 != '\r')" ( (binary_expression "cVar3 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "((cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)))" ( (parenthesized_expression "(cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0))" ( (binary_expression "cVar3 == '\n' || (((int)cVar3 & 0x60U) != 0)" (binary_expression "cVar3 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) || (parenthesized_expression "(((int)cVar3 & 0x60U) != 0)" ( (binary_expression "((int)cVar3 & 0x60U) != 0" (parenthesized_expression "((int)cVar3 & 0x60U)" ( (binary_expression "(int)cVar3 & 0x60U" (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n                fputc((int)cVar3,*(FILE **)puVar26);\n              }" { (expression_statement "fputc((int)cVar3,*(FILE **)puVar26);" (call_expression "fputc((int)cVar3,*(FILE **)puVar26)" identifier (argument_list "((int)cVar3,*(FILE **)puVar26)" ( (cast_expression "(int)cVar3" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "*(FILE **)puVar26" * (cast_expression "(FILE **)puVar26" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "pcVar35 = pcVar35 + 1;" (assignment_expression "pcVar35 = pcVar35 + 1" identifier = (binary_expression "pcVar35 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar35 != pcVar19 + sVar9)" ( (binary_expression "pcVar35 != pcVar19 + sVar9" identifier != (binary_expression "pcVar19 + sVar9" identifier + identifier)) )) ;) })) }))) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) })) (expression_statement "bufchain_clear(ch);" (call_expression "bufchain_clear(ch)" identifier (argument_list "(ch)" ( identifier ))) ;) (if_statement "if (pktin->type == 0x34) {\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }" if (parenthesized_expression "(pktin->type == 0x34)" ( (binary_expression "pktin->type == 0x34" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        logevent(ssh->frontend,"Access granted");\n        piVar12[0xe] = 1;\n        piVar12[0xd] = 1;\n        goto LAB_0002d9b1;\n      }" { (expression_statement "logevent(ssh->frontend,"Access granted");" (call_expression "logevent(ssh->frontend,"Access granted")" identifier (argument_list "(ssh->frontend,"Access granted")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Access granted"" " string_content ") ))) ;) (expression_statement "piVar12[0xe] = 1;" (assignment_expression "piVar12[0xe] = 1" (subscript_expression "piVar12[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xd] = 1;" (assignment_expression "piVar12[0xd] = 1" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d9b1;" goto statement_identifier ;) })) (if_statement "if (pktin->type == 0x33) {\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }\n      else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }" if (parenthesized_expression "(pktin->type == 0x33)" ( (binary_expression "pktin->type == 0x33" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        piVar12[3] = 0;\n        ssh_pkt_getstring(pktin,&methods,(int *)&error);\n        iVar20 = pktin->savedpos;\n        if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }\n        pcVar35 = error;\n        pcVar19 = methods;\n        iVar20 = in_commasep_string("publickey",methods,(int)error);\n        piVar12[5] = iVar20;\n        iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);\n        piVar12[6] = iVar20;\n        uVar22 = conf_get_int(ssh->conf,0x26);\n        if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }\n        piVar12[7] = uVar22;\n        iVar20 = conf_get_int(ssh->conf,0x27);\n        if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }\n      }" { (expression_statement "piVar12[3] = 0;" (assignment_expression "piVar12[3] = 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "ssh_pkt_getstring(pktin,&methods,(int *)&error);" (call_expression "ssh_pkt_getstring(pktin,&methods,(int *)&error)" identifier (argument_list "(pktin,&methods,(int *)&error)" ( identifier , (pointer_expression "&methods" & identifier) , (cast_expression "(int *)&error" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&error" & identifier)) ))) ;) (expression_statement "iVar20 = pktin->savedpos;" (assignment_expression "iVar20 = pktin->savedpos" identifier = (field_expression "pktin->savedpos" identifier -> field_identifier)) ;) (if_statement "if ((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')) {\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }\n        else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }" if (parenthesized_expression "((pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0'))" ( (binary_expression "(pktin->length == iVar20 || pktin->length - iVar20 < 0) ||\n           (uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')" (parenthesized_expression "(pktin->length == iVar20 || pktin->length - iVar20 < 0)" ( (binary_expression "pktin->length == iVar20 || pktin->length - iVar20 < 0" (binary_expression "pktin->length == iVar20" (field_expression "pktin->length" identifier -> field_identifier) == identifier) || (binary_expression "pktin->length - iVar20 < 0" (binary_expression "pktin->length - iVar20" (field_expression "pktin->length" identifier -> field_identifier) - identifier) < number_literal)) )) || (parenthesized_expression "(uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0')" ( (comma_expression "uVar4 = pktin->body[iVar20], pktin->savedpos = iVar20 + 1, uVar4 == '\0'" (assignment_expression "uVar4 = pktin->body[iVar20]" identifier = (subscript_expression "pktin->body[iVar20]" (field_expression "pktin->body" identifier -> field_identifier) [ identifier ])) , (comma_expression "pktin->savedpos = iVar20 + 1, uVar4 == '\0'" (assignment_expression "pktin->savedpos = iVar20 + 1" (field_expression "pktin->savedpos" identifier -> field_identifier) = (binary_expression "iVar20 + 1" identifier + number_literal)) , (binary_expression "uVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n          iVar20 = piVar12[1];\n          if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }\n        }" { (expression_statement "iVar20 = piVar12[1];" (assignment_expression "iVar20 = piVar12[1]" identifier = (subscript_expression "piVar12[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 != 0) {\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n            if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }\n          }" { (if_statement "if (iVar20 - 2U < 2) {\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }\n            else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" if (parenthesized_expression "(iVar20 - 2U < 2)" ( (binary_expression "iVar20 - 2U < 2" (binary_expression "iVar20 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n              if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }\n              logevent(ssh->frontend,"Server refused our key");\n            }" { (if_statement "if (iVar20 == 2) {\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }" if (parenthesized_expression "(iVar20 == 2)" ( (binary_expression "iVar20 == 2" identifier == number_literal) )) (compound_statement "{\n                c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);\n              }" { (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Server refused our key\r\n",0x18)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Server refused our key\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) })) (expression_statement "logevent(ssh->frontend,"Server refused our key");" (call_expression "logevent(ssh->frontend,"Server refused our key")" identifier (argument_list "(ssh->frontend,"Server refused our key")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Server refused our key"" " string_content ") ))) ;) }) (else_clause "else if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" else (if_statement "if (iVar20 == 1) {\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }\n            else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" if (parenthesized_expression "(iVar20 == 1)" ( (binary_expression "iVar20 == 1" identifier == number_literal) )) (compound_statement "{\n              c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);\n              logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");\n            }" { (expression_statement "c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,\n                      "Server refused public-key signature despite accepting key!\r\n",0x3c)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Server refused public-key signature despite accepting key!\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "logevent(ssh->frontend,"Server refused public-key signature despite accepting key!");" (call_expression "logevent(ssh->frontend,"Server refused public-key signature despite accepting key!")" identifier (argument_list "(ssh->frontend,"Server refused public-key signature despite accepting key!")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Server refused public-key signature despite accepting key!"" " string_content ") ))) ;) }) (else_clause "else if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" else (if_statement "if (iVar20 == 7) {\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }\n            else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" if (parenthesized_expression "(iVar20 == 7)" ( (binary_expression "iVar20 == 7" identifier == number_literal) )) (compound_statement "{\n              logevent(ssh->frontend,"Server refused keyboard-interactive authentication");\n            }" { (expression_statement "logevent(ssh->frontend,"Server refused keyboard-interactive authentication");" (call_expression "logevent(ssh->frontend,"Server refused keyboard-interactive authentication")" identifier (argument_list "(ssh->frontend,"Server refused keyboard-interactive authentication")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Server refused keyboard-interactive authentication"" " string_content ") ))) ;) }) (else_clause "else if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" else (if_statement "if (iVar20 != 5) {\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" if (parenthesized_expression "(iVar20 != 5)" ( (binary_expression "iVar20 != 5" identifier != number_literal) )) (compound_statement "{\n              if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }\n            }" { (if_statement "if (iVar20 == 6) {\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }\n              else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }" if (parenthesized_expression "(iVar20 == 6)" ( (binary_expression "iVar20 == 6" identifier == number_literal) )) (compound_statement "{\n                logevent(ssh->frontend,"Keyboard-interactive authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n              }" { (expression_statement "logevent(ssh->frontend,"Keyboard-interactive authentication failed");" (call_expression "logevent(ssh->frontend,"Keyboard-interactive authentication failed")" identifier (argument_list "(ssh->frontend,"Keyboard-interactive authentication failed")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Keyboard-interactive authentication failed"" " string_content ") ))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Access denied\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) }) (else_clause "else {\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }" else (compound_statement "{\n                if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }\n                logevent(ssh->frontend,"Password authentication failed");\n                c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);\n                iVar20 = conf_get_int(ssh->conf,0x1e);\n                if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }\n              }" { (if_statement "if (iVar20 != 4) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }" if (parenthesized_expression "(iVar20 != 4)" ( (binary_expression "iVar20 != 4" identifier != number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n                }" { comment (expression_statement "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");" (call_expression "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" identifier (argument_list "("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" ( (string_literal ""s->type == AUTH_TYPE_PASSWORD"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "logevent(ssh->frontend,"Password authentication failed");" (call_expression "logevent(ssh->frontend,"Password authentication failed")" identifier (argument_list "(ssh->frontend,"Password authentication failed")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Password authentication failed"" " string_content ") ))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Access denied\r\n",0xf)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Access denied\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x1e);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x1e)" identifier = (call_expression "conf_get_int(ssh->conf,0x1e)" identifier (argument_list "(ssh->conf,0x1e)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (iVar20 != 0) {\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n                  pCVar5 = ssh->conf;\n                  piVar12[0xd] = 0;\n                  if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;\n                  goto LAB_0002d7f9;\n                }" { (expression_statement "pCVar5 = ssh->conf;" (assignment_expression "pCVar5 = ssh->conf" identifier = (field_expression "ssh->conf" identifier -> field_identifier)) ;) (expression_statement "piVar12[0xd] = 0;" (assignment_expression "piVar12[0xd] = 0" (subscript_expression "piVar12[0xd]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))\n                  goto LAB_0002d7cb;" if (parenthesized_expression "((piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0))" ( (binary_expression "(piVar12[0x13] == 0) || (iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0)" (parenthesized_expression "(piVar12[0x13] == 0)" ( (binary_expression "piVar12[0x13] == 0" (subscript_expression "piVar12[0x13]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0)" ( (comma_expression "iVar20 = conf_get_int(pCVar5,0x1e), iVar20 != 0" (assignment_expression "iVar20 = conf_get_int(pCVar5,0x1e)" identifier = (call_expression "conf_get_int(pCVar5,0x1e)" identifier (argument_list "(pCVar5,0x1e)" ( identifier , number_literal )))) , (binary_expression "iVar20 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0002d7cb;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d7f9;" goto statement_identifier ;) })) }))) })))))))) })) }) (else_clause "else {\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }" else (compound_statement "{\n          c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);\n          logevent(ssh->frontend,"Further authentication required");\n        }" { (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Further authentication required\r\n",0x21)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Further authentication required\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "logevent(ssh->frontend,"Further authentication required");" (call_expression "logevent(ssh->frontend,"Further authentication required")" identifier (argument_list "(ssh->frontend,"Further authentication required")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Further authentication required"" " string_content ") ))) ;) }))) (expression_statement "pcVar35 = error;" (assignment_expression "pcVar35 = error" identifier = identifier) ;) (expression_statement "pcVar19 = methods;" (assignment_expression "pcVar19 = methods" identifier = identifier) ;) (expression_statement "iVar20 = in_commasep_string("publickey",methods,(int)error);" (assignment_expression "iVar20 = in_commasep_string("publickey",methods,(int)error)" identifier = (call_expression "in_commasep_string("publickey",methods,(int)error)" identifier (argument_list "("publickey",methods,(int)error)" ( (string_literal ""publickey"" " string_content ") , identifier , (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "piVar12[5] = iVar20;" (assignment_expression "piVar12[5] = iVar20" (subscript_expression "piVar12[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35);" (assignment_expression "iVar20 = in_commasep_string("password",pcVar19,(int)pcVar35)" identifier = (call_expression "in_commasep_string("password",pcVar19,(int)pcVar35)" identifier (argument_list "("password",pcVar19,(int)pcVar35)" ( (string_literal ""password"" " string_content ") , identifier , (cast_expression "(int)pcVar35" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "piVar12[6] = iVar20;" (assignment_expression "piVar12[6] = iVar20" (subscript_expression "piVar12[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar22 = conf_get_int(ssh->conf,0x26);" (assignment_expression "uVar22 = conf_get_int(ssh->conf,0x26)" identifier = (call_expression "conf_get_int(ssh->conf,0x26)" identifier (argument_list "(ssh->conf,0x26)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if (uVar22 != 0) {\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }" if (parenthesized_expression "(uVar22 != 0)" ( (binary_expression "uVar22 != 0" identifier != number_literal) )) (compound_statement "{\n          iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);\n          uVar22 = (uint)(iVar20 != 0);\n        }" { (expression_statement "iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error);" (assignment_expression "iVar20 = in_commasep_string("keyboard-interactive",methods,(int)error)" identifier = (call_expression "in_commasep_string("keyboard-interactive",methods,(int)error)" identifier (argument_list "("keyboard-interactive",methods,(int)error)" ( (string_literal ""keyboard-interactive"" " string_content ") , identifier , (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "uVar22 = (uint)(iVar20 != 0);" (assignment_expression "uVar22 = (uint)(iVar20 != 0)" identifier = (call_expression "(uint)(iVar20 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )))) ;) })) (expression_statement "piVar12[7] = uVar22;" (assignment_expression "piVar12[7] = uVar22" (subscript_expression "piVar12[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = conf_get_int(ssh->conf,0x27);" (assignment_expression "iVar20 = conf_get_int(ssh->conf,0x27)" identifier = (call_expression "conf_get_int(ssh->conf,0x27)" identifier (argument_list "(ssh->conf,0x27)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (if_statement "if ((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)) {\n          piVar12[10] = 0;\n        }\n        else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }" if (parenthesized_expression "((iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0))" ( (binary_expression "(iVar20 == 0) ||\n           (iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)" (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0)" ( (comma_expression "iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error), iVar20 == 0" (assignment_expression "iVar20 = in_commasep_string("gssapi-with-mic",methods,(int)error)" identifier = (call_expression "in_commasep_string("gssapi-with-mic",methods,(int)error)" identifier (argument_list "("gssapi-with-mic",methods,(int)error)" ( (string_literal ""gssapi-with-mic"" " string_content ") , identifier , (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier) )))) , (binary_expression "iVar20 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          piVar12[10] = 0;\n        }" { (expression_statement "piVar12[10] = 0;" (assignment_expression "piVar12[10] = 0" (subscript_expression "piVar12[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }" else (compound_statement "{\n          psVar29 = ssh->gsslibs;\n          if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }\n          piVar12[10] = (uint)(0 < psVar29->nlibraries);\n        }" { (expression_statement "psVar29 = ssh->gsslibs;" (assignment_expression "psVar29 = ssh->gsslibs" identifier = (field_expression "ssh->gsslibs" identifier -> field_identifier)) ;) (if_statement "if (psVar29 == (ssh_gss_liblist *)0x0) {\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }" if (parenthesized_expression "(psVar29 == (ssh_gss_liblist *)0x0)" ( (binary_expression "psVar29 == (ssh_gss_liblist *)0x0" identifier == (cast_expression "(ssh_gss_liblist *)0x0" ( (type_descriptor "ssh_gss_liblist *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            psVar29 = ssh_gss_setup(ssh->conf);\n            ssh->gsslibs = psVar29;\n          }" { (expression_statement "psVar29 = ssh_gss_setup(ssh->conf);" (assignment_expression "psVar29 = ssh_gss_setup(ssh->conf)" identifier = (call_expression "ssh_gss_setup(ssh->conf)" identifier (argument_list "(ssh->conf)" ( (field_expression "ssh->conf" identifier -> field_identifier) )))) ;) (expression_statement "ssh->gsslibs = psVar29;" (assignment_expression "ssh->gsslibs = psVar29" (field_expression "ssh->gsslibs" identifier -> field_identifier) = identifier) ;) })) (expression_statement "piVar12[10] = (uint)(0 < psVar29->nlibraries);" (assignment_expression "piVar12[10] = (uint)(0 < psVar29->nlibraries)" (subscript_expression "piVar12[10]" identifier [ number_literal ]) = (call_expression "(uint)(0 < psVar29->nlibraries)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < psVar29->nlibraries)" ( (binary_expression "0 < psVar29->nlibraries" number_literal < (field_expression "psVar29->nlibraries" identifier -> field_identifier)) )))) ;) }))) }) (else_clause "else {\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }" else (compound_statement "{\n        if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }\n        piVar12[3] = 0;\n      }" { (if_statement "if (piVar12[1] != 5) {\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(piVar12[1] != 5)" ( (binary_expression "piVar12[1] != 5" (subscript_expression "piVar12[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          pcVar19 = "Strange packet received during authentication: type %d";\n          goto LAB_0002dba9;\n        }" { (expression_statement "pcVar19 = "Strange packet received during authentication: type %d";" (assignment_expression "pcVar19 = "Strange packet received during authentication: type %d"" identifier = (string_literal ""Strange packet received during authentication: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "piVar12[3] = 0;" (assignment_expression "piVar12[3] = 0" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_NOAUTH" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (if_statement "if (piVar12[5] != 0) {\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }" if (parenthesized_expression "(piVar12[5] != 0)" ( (binary_expression "piVar12[5] != 0" (subscript_expression "piVar12[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }\n        if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }\n      }" { (if_statement "if ((piVar12[9] == 0) && (piVar12[0x21] != 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }" if (parenthesized_expression "((piVar12[9] == 0) && (piVar12[0x21] != 0))" ( (binary_expression "(piVar12[9] == 0) && (piVar12[0x21] != 0)" (parenthesized_expression "(piVar12[9] == 0)" ( (binary_expression "piVar12[9] == 0" (subscript_expression "piVar12[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar12[0x21] != 0)" ( (binary_expression "piVar12[0x21] != 0" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          iVar33 = piVar12[0x1d];\n          piVar12[0x25] = iVar10;\n          iVar20 = iVar33 + 4;\n          piVar12[0x22] = iVar20;\n          piVar12[0x1d] = iVar20 + iVar10;\n          uVar22 = *(uint *)(iVar33 + 4);\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x26] = iVar20;\n          piVar12[0x23] = piVar12[0x22] + 4;\n          uVar22 = *(uint *)piVar12[0x1d];\n          iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);\n          piVar12[0x27] = iVar20;\n          piVar12[0x24] = piVar12[0x1d] + 4;\n          piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x26];\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x25];\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 3;\n          goto LAB_0002e2e0;\n        }" { (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20]);" (call_expression "logeventf(ssh,"Trying Pageant key #%d",piVar12[0x20])" identifier (argument_list "(ssh,"Trying Pageant key #%d",piVar12[0x20])" ( identifier , (string_literal ""Trying Pageant key #%d"" " string_content ") , (subscript_expression "piVar12[0x20]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar22 = *(uint *)piVar12[0x1d];" (assignment_expression "uVar22 = *(uint *)piVar12[0x1d]" identifier = (pointer_expression "*(uint *)piVar12[0x1d]" * (cast_expression "(uint *)piVar12[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);" (assignment_expression "iVar10 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "iVar33 = piVar12[0x1d];" (assignment_expression "iVar33 = piVar12[0x1d]" identifier = (subscript_expression "piVar12[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x25] = iVar10;" (assignment_expression "piVar12[0x25] = iVar10" (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = iVar33 + 4;" (assignment_expression "iVar20 = iVar33 + 4" identifier = (binary_expression "iVar33 + 4" identifier + number_literal)) ;) (expression_statement "piVar12[0x22] = iVar20;" (assignment_expression "piVar12[0x22] = iVar20" (subscript_expression "piVar12[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[0x1d] = iVar20 + iVar10;" (assignment_expression "piVar12[0x1d] = iVar20 + iVar10" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = (binary_expression "iVar20 + iVar10" identifier + identifier)) ;) (expression_statement "uVar22 = *(uint *)(iVar33 + 4);" (assignment_expression "uVar22 = *(uint *)(iVar33 + 4)" identifier = (pointer_expression "*(uint *)(iVar33 + 4)" * (cast_expression "(uint *)(iVar33 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 4)" ( (binary_expression "iVar33 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);" (assignment_expression "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar12[0x26] = iVar20;" (assignment_expression "piVar12[0x26] = iVar20" (subscript_expression "piVar12[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[0x23] = piVar12[0x22] + 4;" (assignment_expression "piVar12[0x23] = piVar12[0x22] + 4" (subscript_expression "piVar12[0x23]" identifier [ number_literal ]) = (binary_expression "piVar12[0x22] + 4" (subscript_expression "piVar12[0x22]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar22 = *(uint *)piVar12[0x1d];" (assignment_expression "uVar22 = *(uint *)piVar12[0x1d]" identifier = (pointer_expression "*(uint *)piVar12[0x1d]" * (cast_expression "(uint *)piVar12[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18);" (assignment_expression "iVar20 = toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier = (call_expression "toint(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" identifier (argument_list "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                         uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar12[0x27] = iVar20;" (assignment_expression "piVar12[0x27] = iVar20" (subscript_expression "piVar12[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar12[0x24] = piVar12[0x1d] + 4;" (assignment_expression "piVar12[0x24] = piVar12[0x1d] + 4" (subscript_expression "piVar12[0x24]" identifier [ number_literal ]) = (binary_expression "piVar12[0x1d] + 4" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20;" (assignment_expression "piVar12[0x1d] = piVar12[0x1d] + 4 + iVar20" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar12[0x1d] + 4 + iVar20" (binary_expression "piVar12[0x1d] + 4" (subscript_expression "piVar12[0x1d]" identifier [ number_literal ]) + number_literal) + identifier)) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey")" identifier (argument_list "((Packet *)piVar12[0x2e],"publickey")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""publickey"" " string_content ") ))) ;) (expression_statement "len = len & 0xffffff00;" (assignment_expression "len = len & 0xffffff00" identifier = (binary_expression "len & 0xffffff00" identifier & number_literal)) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = piVar12[0x26];" (assignment_expression "iVar20 = piVar12[0x26]" identifier = (subscript_expression "piVar12[0x26]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = (char *)piVar12[0x23];" (assignment_expression "pcVar19 = (char *)piVar12[0x23]" identifier = (cast_expression "(char *)piVar12[0x23]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x23]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20)" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,iVar20)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = piVar12[0x25];" (assignment_expression "iVar20 = piVar12[0x25]" identifier = (subscript_expression "piVar12[0x25]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = (char *)piVar12[0x22];" (assignment_expression "pcVar19 = (char *)piVar12[0x22]" identifier = (cast_expression "(char *)piVar12[0x22]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x22]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20)" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,iVar20)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "piVar12[1] = 3;" (assignment_expression "piVar12[1] = 3" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e2e0;" goto statement_identifier ;) })) (if_statement "if (((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)) {\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0))" ( (binary_expression "((piVar12[0x14] != 0) && (piVar12[0x16] != 0)) && (piVar12[8] == 0)" (parenthesized_expression "((piVar12[0x14] != 0) && (piVar12[0x16] != 0))" ( (binary_expression "(piVar12[0x14] != 0) && (piVar12[0x16] != 0)" (parenthesized_expression "(piVar12[0x14] != 0)" ( (binary_expression "piVar12[0x14] != 0" (subscript_expression "piVar12[0x14]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar12[0x16] != 0)" ( (binary_expression "piVar12[0x16] != 0" (subscript_expression "piVar12[0x16]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(piVar12[8] == 0)" ( (binary_expression "piVar12[8] == 0" (subscript_expression "piVar12[8]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;\n          piVar12[8] = 1;\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          len = len & 0xffffff00;\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          iVar20 = piVar12[0x15];\n          pcVar19 = (char *)piVar12[0x14];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          logevent(ssh->frontend,"Offered public key");\nLAB_0002f4f1:\n          *piVar12 = 0x26df;\n          goto LAB_0002d320;\n        }" { (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar12[8] = 1;" (assignment_expression "piVar12[8] = 1" (subscript_expression "piVar12[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey")" identifier (argument_list "((Packet *)piVar12[0x2e],"publickey")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""publickey"" " string_content ") ))) ;) (expression_statement "len = len & 0xffffff00;" (assignment_expression "len = len & 0xffffff00" identifier = (binary_expression "len & 0xffffff00" identifier & number_literal)) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18]);" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x18])" identifier (argument_list "((Packet *)piVar12[0x2e],(char *)piVar12[0x18])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(char *)piVar12[0x18]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x18]" identifier [ number_literal ])) ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar20 = piVar12[0x15];" (assignment_expression "iVar20 = piVar12[0x15]" identifier = (subscript_expression "piVar12[0x15]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = (char *)piVar12[0x14];" (assignment_expression "pcVar19 = (char *)piVar12[0x14]" identifier = (cast_expression "(char *)piVar12[0x14]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x14]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,iVar20)" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,iVar20)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , identifier ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "logevent(ssh->frontend,"Offered public key");" (call_expression "logevent(ssh->frontend,"Offered public key")" identifier (argument_list "(ssh->frontend,"Offered public key")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Offered public key"" " string_content ") ))) ;) (labeled_statement "LAB_0002f4f1:\n          *piVar12 = 0x26df;" statement_identifier : (expression_statement "*piVar12 = 0x26df;" (assignment_expression "*piVar12 = 0x26df" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) })) (if_statement "if ((piVar12[10] != 0) && (piVar12[0xb] == 0)) {\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }" if (parenthesized_expression "((piVar12[10] != 0) && (piVar12[0xb] == 0))" ( (binary_expression "(piVar12[10] != 0) && (piVar12[0xb] == 0)" (parenthesized_expression "(piVar12[10] != 0)" ( (binary_expression "piVar12[10] != 0" (subscript_expression "piVar12[10]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar12[0xb] == 0)" ( (binary_expression "piVar12[0xb] == 0" (subscript_expression "piVar12[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        piVar12[1] = 5;\n        piVar12[0xb] = 1;\n        iVar20 = ngsslibs;\n        piVar12[3] = 1;\n        local_64 = (ssh2_userkey *)0x0;\n        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;\n        piVar12[0x30] = 0;\n        if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }\n        do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);\n        psVar32 = (ssh_gss_library *)piVar12[0x30];\nLAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;\n        if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");\n        logevent(ssh->frontend,"Attempting GSSAPI authentication");\n        (**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);\n        x[0] = '\0';\n        x[1] = '\0';\n        x[2] = '\0';\n        x[3] = '\x01';\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);\n        ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);\n        len = CONCAT31(len._1_3_,6);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        len = CONCAT31(len._1_3_,(char)piVar12[0x32]);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        goto LAB_0002d664;\n      }" { (expression_statement "piVar12[1] = 5;" (assignment_expression "piVar12[1] = 5" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xb] = 1;" (assignment_expression "piVar12[0xb] = 1" (subscript_expression "piVar12[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar20 = ngsslibs;" (assignment_expression "iVar20 = ngsslibs" identifier = identifier) ;) (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_64 = (ssh2_userkey *)0x0;" (assignment_expression "local_64 = (ssh2_userkey *)0x0" identifier = (cast_expression "(ssh2_userkey *)0x0" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_GSSAPI" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "piVar12[0x30] = 0;" (assignment_expression "piVar12[0x30] = 0" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar20 < 1) {\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }" if (parenthesized_expression "(iVar20 < 1)" ( (binary_expression "iVar20 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n        }" { (labeled_statement "LAB_000301fa:\n                    /* WARNING: Subroutine does not return */\n          __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" statement_identifier : comment (expression_statement "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" (call_expression "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" identifier (argument_list "("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" ( (string_literal ""s->gsslib"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;)) })) (do_statement "do {\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        } while ((ssh2_userkey *)iVar20 != local_64);" do (compound_statement "{\n          iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);\n          iVar33 = ssh->gsslibs->nlibraries;\n          if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }\n          local_64 = (ssh2_userkey *)((int)local_64 + 1);\n        }" { (expression_statement "iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64);" (assignment_expression "iVar10 = conf_get_int_int(ssh->conf,0x29,(int)local_64)" identifier = (call_expression "conf_get_int_int(ssh->conf,0x29,(int)local_64)" identifier (argument_list "(ssh->conf,0x29,(int)local_64)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal , (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) )))) ;) (expression_statement "iVar33 = ssh->gsslibs->nlibraries;" (assignment_expression "iVar33 = ssh->gsslibs->nlibraries" identifier = (field_expression "ssh->gsslibs->nlibraries" (field_expression "ssh->gsslibs" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (0 < iVar33) {\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }" if (parenthesized_expression "(0 < iVar33)" ( (binary_expression "0 < iVar33" number_literal < identifier) )) (compound_statement "{\n            psVar32 = ssh->gsslibs->libraries;\n            if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }\n            iVar30 = 0;\n            while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }\n          }" { (expression_statement "psVar32 = ssh->gsslibs->libraries;" (assignment_expression "psVar32 = ssh->gsslibs->libraries" identifier = (field_expression "ssh->gsslibs->libraries" (field_expression "ssh->gsslibs" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (iVar10 == psVar32->id) {\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }" if (parenthesized_expression "(iVar10 == psVar32->id)" ( (binary_expression "iVar10 == psVar32->id" identifier == (field_expression "psVar32->id" identifier -> field_identifier)) )) (compound_statement "{\nLAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;\n              goto LAB_0002d550;\n            }" { (labeled_statement "LAB_0002ebb0:\n              piVar12[0x30] = (int)psVar32;" statement_identifier : (expression_statement "piVar12[0x30] = (int)psVar32;" (assignment_expression "piVar12[0x30] = (int)psVar32" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) = (cast_expression "(int)psVar32" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (goto_statement "goto LAB_0002d550;" goto statement_identifier ;) })) (expression_statement "iVar30 = 0;" (assignment_expression "iVar30 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n              psVar32 = psVar32 + 1;\n              iVar30 = iVar30 + 1;\n              if (iVar30 == iVar33) break;\n              if (psVar32->id == iVar10) goto LAB_0002ebb0;\n            }" { (expression_statement "psVar32 = psVar32 + 1;" (assignment_expression "psVar32 = psVar32 + 1" identifier = (binary_expression "psVar32 + 1" identifier + number_literal)) ;) (expression_statement "iVar30 = iVar30 + 1;" (assignment_expression "iVar30 = iVar30 + 1" identifier = (binary_expression "iVar30 + 1" identifier + number_literal)) ;) (if_statement "if (iVar30 == iVar33) break;" if (parenthesized_expression "(iVar30 == iVar33)" ( (binary_expression "iVar30 == iVar33" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (psVar32->id == iVar10) goto LAB_0002ebb0;" if (parenthesized_expression "(psVar32->id == iVar10)" ( (binary_expression "psVar32->id == iVar10" (field_expression "psVar32->id" identifier -> field_identifier) == identifier) )) (goto_statement "goto LAB_0002ebb0;" goto statement_identifier ;)) })) })) (expression_statement "local_64 = (ssh2_userkey *)((int)local_64 + 1);" (assignment_expression "local_64 = (ssh2_userkey *)((int)local_64 + 1)" identifier = (cast_expression "(ssh2_userkey *)((int)local_64 + 1)" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 1)" ( (binary_expression "(int)local_64 + 1" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((ssh2_userkey *)iVar20 != local_64)" ( (binary_expression "(ssh2_userkey *)iVar20 != local_64" (cast_expression "(ssh2_userkey *)iVar20" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (expression_statement "psVar32 = (ssh_gss_library *)piVar12[0x30];" (assignment_expression "psVar32 = (ssh_gss_library *)piVar12[0x30]" identifier = (cast_expression "(ssh_gss_library *)piVar12[0x30]" ( (type_descriptor "ssh_gss_library *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x30]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0002d550:\n        if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;" statement_identifier : (if_statement "if (psVar32 == (ssh_gss_library *)0x0) goto LAB_000301fa;" if (parenthesized_expression "(psVar32 == (ssh_gss_library *)0x0)" ( (binary_expression "psVar32 == (ssh_gss_library *)0x0" identifier == (cast_expression "(ssh_gss_library *)0x0" ( (type_descriptor "ssh_gss_library *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000301fa;" goto statement_identifier ;))) (if_statement "if (psVar32->gsslogmsg != (char *)0x0) {\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }" if (parenthesized_expression "(psVar32->gsslogmsg != (char *)0x0)" ( (binary_expression "psVar32->gsslogmsg != (char *)0x0" (field_expression "psVar32->gsslogmsg" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          logevent(ssh->frontend,psVar32->gsslogmsg);\n        }" { (expression_statement "logevent(ssh->frontend,psVar32->gsslogmsg);" (call_expression "logevent(ssh->frontend,psVar32->gsslogmsg)" identifier (argument_list "(ssh->frontend,psVar32->gsslogmsg)" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (field_expression "psVar32->gsslogmsg" identifier -> field_identifier) ))) ;) })) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"gssapi-with-mic")" identifier (argument_list "((Packet *)piVar12[0x2e],"gssapi-with-mic")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""gssapi-with-mic"" " string_content ") ))) ;) (expression_statement "logevent(ssh->frontend,"Attempting GSSAPI authentication");" (call_expression "logevent(ssh->frontend,"Attempting GSSAPI authentication")" identifier (argument_list "(ssh->frontend,"Attempting GSSAPI authentication")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Attempting GSSAPI authentication"" " string_content ") ))) ;) (expression_statement "(**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32);" (call_expression "(**(code **)(piVar12[0x30] + 8))(piVar12[0x30],piVar12 + 0x32)" (parenthesized_expression "(**(code **)(piVar12[0x30] + 8))" ( (pointer_expression "**(code **)(piVar12[0x30] + 8)" * (pointer_expression "*(code **)(piVar12[0x30] + 8)" * (cast_expression "(code **)(piVar12[0x30] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0x30] + 8)" ( (binary_expression "piVar12[0x30] + 8" (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar12[0x30],piVar12 + 0x32)" ( (subscript_expression "piVar12[0x30]" identifier [ number_literal ]) , (binary_expression "piVar12 + 0x32" identifier + number_literal) ))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\x01';" (assignment_expression "x[3] = '\x01'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],x,4)" identifier (argument_list "((Packet *)piVar12[0x2e],x,4)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2);" (call_expression "ssh_pkt_adduint32((Packet *)piVar12[0x2e],piVar12[0x32] + 2)" identifier (argument_list "((Packet *)piVar12[0x2e],piVar12[0x32] + 2)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (binary_expression "piVar12[0x32] + 2" (subscript_expression "piVar12[0x32]" identifier [ number_literal ]) + number_literal) ))) ;) (expression_statement "len = CONCAT31(len._1_3_,6);" (assignment_expression "len = CONCAT31(len._1_3_,6)" identifier = (call_expression "CONCAT31(len._1_3_,6)" identifier (argument_list "(len._1_3_,6)" ( (field_expression "len._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "len = CONCAT31(len._1_3_,(char)piVar12[0x32]);" (assignment_expression "len = CONCAT31(len._1_3_,(char)piVar12[0x32])" identifier = (call_expression "CONCAT31(len._1_3_,(char)piVar12[0x32])" identifier (argument_list "(len._1_3_,(char)piVar12[0x32])" ( (field_expression "len._1_3_" identifier . field_identifier) , (cast_expression "(char)piVar12[0x32]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[0x32]" identifier [ number_literal ])) )))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32]);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32])" identifier (argument_list "((Packet *)piVar12[0x2e],(void *)piVar12[0x33],piVar12[0x32])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(void *)piVar12[0x33]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x33]" identifier [ number_literal ])) , (subscript_expression "piVar12[0x32]" identifier [ number_literal ]) ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (goto_statement "goto LAB_0002d664;" goto statement_identifier ;) })) (if_statement "if ((piVar12[7] != 0) && (piVar12[0xc] == 0)) {\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "((piVar12[7] != 0) && (piVar12[0xc] == 0))" ( (binary_expression "(piVar12[7] != 0) && (piVar12[0xc] == 0)" (parenthesized_expression "(piVar12[7] != 0)" ( (binary_expression "piVar12[7] != 0" (subscript_expression "piVar12[7]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar12[0xc] == 0)" ( (binary_expression "piVar12[0xc] == 0" (subscript_expression "piVar12[0xc]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        piVar12[1] = 6;\n        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"");\n        ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n        logevent(ssh->frontend,"Attempting keyboard-interactive authentication");\nLAB_0002e166:\n        *piVar12 = 0x284b;\n        goto LAB_0002d320;\n      }" { (expression_statement "piVar12[1] = 6;" (assignment_expression "piVar12[1] = 6" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_KBDINTER" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"keyboard-interactive")" identifier (argument_list "((Packet *)piVar12[0x2e],"keyboard-interactive")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""keyboard-interactive"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"")" identifier (argument_list "((Packet *)piVar12[0x2e],"")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal """" " ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"")" identifier (argument_list "((Packet *)piVar12[0x2e],"")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal """" " ") ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "logevent(ssh->frontend,"Attempting keyboard-interactive authentication");" (call_expression "logevent(ssh->frontend,"Attempting keyboard-interactive authentication")" identifier (argument_list "(ssh->frontend,"Attempting keyboard-interactive authentication")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Attempting keyboard-interactive authentication"" " string_content ") ))) ;) (labeled_statement "LAB_0002e166:\n        *piVar12 = 0x284b;" statement_identifier : (expression_statement "*piVar12 = 0x284b;" (assignment_expression "*piVar12 = 0x284b" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (piVar12[6] == 0) {\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar12[6] == 0)" ( (binary_expression "piVar12[6] == 0" (subscript_expression "piVar12[6]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);\n        ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);\n        safefree(pcVar19);\n        *piVar12 = 0;\n        goto LAB_0002d320;\n      }" { (expression_statement "pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods);" (assignment_expression "pcVar19 = dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods)" identifier = (call_expression "dupprintf("No supported authentication methods available (server sent: %.*s)",\n                            error,methods)" identifier (argument_list "("No supported authentication methods available (server sent: %.*s)",\n                            error,methods)" ( (string_literal ""No supported authentication methods available (server sent: %.*s)"" " string_content ") , identifier , identifier )))) ;) (expression_statement "ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0);" (call_expression "ssh_disconnect(ssh,pcVar19,"No supported authentication methods available",0xe,0)" identifier (argument_list "(ssh,pcVar19,"No supported authentication methods available",0xe,0)" ( identifier , identifier , (string_literal ""No supported authentication methods available"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;" (assignment_expression "ssh->pkt_actx = SSH2_PKTCTX_PASSWORD" (field_expression "ssh->pkt_actx" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar18 = new_prompts(ssh->frontend);" (assignment_expression "ppVar18 = new_prompts(ssh->frontend)" identifier = (call_expression "new_prompts(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) )))) ;) (expression_statement "piVar12[0xf] = (int)ppVar18;" (assignment_expression "piVar12[0xf] = (int)ppVar18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) = (cast_expression "(int)ppVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ppVar18->to_server = 1;" (assignment_expression "ppVar18->to_server = 1" (field_expression "ppVar18->to_server" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar19 = dupstr("SSH password");" (assignment_expression "pcVar19 = dupstr("SSH password")" identifier = (call_expression "dupstr("SSH password")" identifier (argument_list "("SSH password")" ( (string_literal ""SSH password"" " string_content ") )))) ;) (expression_statement "ppVar18->name = pcVar19;" (assignment_expression "ppVar18->name = pcVar19" (field_expression "ppVar18->name" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost);" (assignment_expression "pcVar19 = dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost)" identifier = (call_expression "dupprintf("%s@%s\'s password: ",ssh->username,ssh->savedhost)" identifier (argument_list "("%s@%s\'s password: ",ssh->username,ssh->savedhost)" ( (string_literal ""%s@%s\'s password: "" " string_content escape_sequence string_content ") , (field_expression "ssh->username" identifier -> field_identifier) , (field_expression "ssh->savedhost" identifier -> field_identifier) )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (labeled_statement "LAB_0002dc60:\n      if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (iVar20 < 0) {\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n        ssh->send_ok = 1;\nLAB_0002d68e:\n        *piVar12 = 0x28e8;\n        goto LAB_0002d320;\n      }" { (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0002d68e:\n        *piVar12 = 0x28e8;" statement_identifier : (expression_statement "*piVar12 = 0x28e8;" (assignment_expression "*piVar12 = 0x28e8" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (if_statement "if (iVar20 != 0) {\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        pcVar19 = dupstr((*ppVar18->prompts)->result);\n        piVar12[0x12] = (int)pcVar19;\n        free_prompts((prompts_t *)piVar12[0xf]);\n        pPVar11 = ssh2_pkt_init(0x32);\n        pcVar19 = ssh->username;\n        piVar12[0x2e] = (int)pPVar11;\n        ssh_pkt_addstring(pPVar11,pcVar19);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n        len = len & 0xffffff00;\n        ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n        ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n        ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);\n        logevent(ssh->frontend,"Sent password");\n        piVar12[1] = 4;\n        goto LAB_0002dd1c;\n      }" { (expression_statement "pcVar19 = dupstr((*ppVar18->prompts)->result);" (assignment_expression "pcVar19 = dupstr((*ppVar18->prompts)->result)" identifier = (call_expression "dupstr((*ppVar18->prompts)->result)" identifier (argument_list "((*ppVar18->prompts)->result)" ( (field_expression "(*ppVar18->prompts)->result" (parenthesized_expression "(*ppVar18->prompts)" ( (pointer_expression "*ppVar18->prompts" * (field_expression "ppVar18->prompts" identifier -> field_identifier)) )) -> field_identifier) )))) ;) (expression_statement "piVar12[0x12] = (int)pcVar19;" (assignment_expression "piVar12[0x12] = (int)pcVar19" (subscript_expression "piVar12[0x12]" identifier [ number_literal ]) = (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"password")" identifier (argument_list "((Packet *)piVar12[0x2e],"password")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""password"" " string_content ") ))) ;) (expression_statement "len = len & 0xffffff00;" (assignment_expression "len = len & 0xffffff00" identifier = (binary_expression "len & 0xffffff00" identifier & number_literal)) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12])" identifier (argument_list "((Packet *)piVar12[0x2e],(char *)piVar12[0x12])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(char *)piVar12[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) ;) (expression_statement "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize);" (call_expression "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize)" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e],padsize)" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "logevent(ssh->frontend,"Sent password");" (call_expression "logevent(ssh->frontend,"Sent password")" identifier (argument_list "(ssh->frontend,"Sent password")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Sent password"" " string_content ") ))) ;) (expression_statement "piVar12[1] = 4;" (assignment_expression "piVar12[1] = 4" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002dd1c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002ea6c:\n      free_prompts(ppVar18);" statement_identifier : (expression_statement "free_prompts(ppVar18);" (call_expression "free_prompts(ppVar18)" identifier (argument_list "(ppVar18)" ( identifier ))) ;)) (labeled_statement "LAB_0002ea71:\n      ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);" statement_identifier : (expression_statement "ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1);" (call_expression "ssh_disconnect(ssh,(char *)0x0,"Unable to authenticate",0xd,1)" identifier (argument_list "(ssh,(char *)0x0,"Unable to authenticate",0xd,1)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (string_literal ""Unable to authenticate"" " string_content ") , number_literal , number_literal ))) ;)) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 < 0x27b7) {\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 < 0x27b7)" ( (binary_expression "iVar20 < 0x27b7" identifier < number_literal) )) (compound_statement "{\n      if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }\n      if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }\n      if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }\n      if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }\n      if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }\n      if (iVar20 != 0x2650) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }\nLAB_0002e2e0:\n      *piVar12 = 0x2650;\n      goto LAB_0002d320;\n    }" { (if_statement "if (iVar20 == 0x2561) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar20 == 0x2561)" ( (binary_expression "iVar20 == 0x2561" identifier == number_literal) )) (compound_statement "{\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }\nLAB_0002e8c8:\n        *piVar12 = 0x2561;\n        goto LAB_0002d320;\n      }" { (if_statement "if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002f3ea;\n        }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier (argument_list "((prompts_t *)piVar12[0xf],in,inlen)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "ssh->send_ok = 0;" (assignment_expression "ssh->send_ok = 0" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002f3ea;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e8c8:\n        *piVar12 = 0x2561;" statement_identifier : (expression_statement "*piVar12 = 0x2561;" (assignment_expression "*piVar12 = 0x2561" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 < 0x2562) {\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }" if (parenthesized_expression "(iVar20 < 0x2562)" ( (binary_expression "iVar20 < 0x2562" identifier < number_literal) )) (compound_statement "{\n        if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }\n        if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }\n        if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }\n        if (iVar20 != 0x24d9) goto LAB_0002d8a4;\n        if (pktin != (Packet *)0x0) goto LAB_0002dba0;\n        if (0 < inlen) goto LAB_0002eb58;\n        error = (char *)ssh->agent_response;\n        piVar12[0x1e] = ssh->agent_response_len;\n        goto LAB_0002d78a;\n      }" { (if_statement "if (iVar20 == 0x246f) {\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }" if (parenthesized_expression "(iVar20 == 0x246f)" ( (binary_expression "iVar20 == 0x246f" identifier == number_literal) )) (compound_statement "{\n          if (pktin == (Packet *)0x0) goto LAB_0002fadd;\n          if (pktin->type != 6) goto LAB_0002dbfb;\n          piVar12[2] = 1;\n          goto LAB_0002d97a;\n        }" { (if_statement "if (pktin == (Packet *)0x0) goto LAB_0002fadd;" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fadd;" goto statement_identifier ;)) (if_statement "if (pktin->type != 6) goto LAB_0002dbfb;" if (parenthesized_expression "(pktin->type != 6)" ( (binary_expression "pktin->type != 6" (field_expression "pktin->type" identifier -> field_identifier) != number_literal) )) (goto_statement "goto LAB_0002dbfb;" goto statement_identifier ;)) (expression_statement "piVar12[2] = 1;" (assignment_expression "piVar12[2] = 1" (subscript_expression "piVar12[2]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d97a;" goto statement_identifier ;) })) (if_statement "if (iVar20 < 0x2470) {\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }" if (parenthesized_expression "(iVar20 < 0x2470)" ( (binary_expression "iVar20 < 0x2470" identifier < number_literal) )) (compound_statement "{\n          if (iVar20 == 0) goto LAB_0002d8d0;\n          goto LAB_0002d8a4;\n        }" { (if_statement "if (iVar20 == 0) goto LAB_0002d8d0;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d8d0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x247a) {\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }" if (parenthesized_expression "(iVar20 == 0x247a)" ( (binary_expression "iVar20 == 0x247a" identifier == number_literal) )) (compound_statement "{\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }\n          goto LAB_0002dc2e;\n        }" { (if_statement "if (pktin != (Packet *)0x0) {\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }\n            goto LAB_0002d973;\n          }" { (if_statement "if (pktin->type != 6) {\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }" if (parenthesized_expression "(pktin->type != 6)" ( (binary_expression "pktin->type != 6" (field_expression "pktin->type" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n              pcVar19 = "Server refused service request";\n              goto LAB_0002dba9;\n            }" { (expression_statement "pcVar19 = "Server refused service request";" (assignment_expression "pcVar19 = "Server refused service request"" identifier = (string_literal ""Server refused service request"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d973;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002dc2e;" goto statement_identifier ;) })) (if_statement "if (iVar20 != 0x24d9) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar20 != 0x24d9)" ( (binary_expression "iVar20 != 0x24d9" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (pktin != (Packet *)0x0) goto LAB_0002dba0;" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002dba0;" goto statement_identifier ;)) (if_statement "if (0 < inlen) goto LAB_0002eb58;" if (parenthesized_expression "(0 < inlen)" ( (binary_expression "0 < inlen" number_literal < identifier) )) (goto_statement "goto LAB_0002eb58;" goto statement_identifier ;)) (expression_statement "error = (char *)ssh->agent_response;" (assignment_expression "error = (char *)ssh->agent_response" identifier = (cast_expression "(char *)ssh->agent_response" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "ssh->agent_response" identifier -> field_identifier))) ;) (expression_statement "piVar12[0x1e] = ssh->agent_response_len;" (assignment_expression "piVar12[0x1e] = ssh->agent_response_len" (subscript_expression "piVar12[0x1e]" identifier [ number_literal ]) = (field_expression "ssh->agent_response_len" identifier -> field_identifier)) ;) (goto_statement "goto LAB_0002d78a;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x2696) {\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }" if (parenthesized_expression "(iVar20 == 0x2696)" ( (binary_expression "iVar20 == 0x2696" identifier == number_literal) )) (compound_statement "{\n        if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }\n        if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }\n        error = (char *)ssh->agent_response;\n        piVar12[0x29] = ssh->agent_response_len;\nLAB_0002e806:\n        piVar12[0x2d] = (int)error;\n        safefree((void *)piVar12[0x2c]);\n        iVar20 = piVar12[0x2d];\n        if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }\nLAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }\n        goto LAB_0002d2f8;\n      }" { (if_statement "if (pktin != (Packet *)0x0) {\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";\n          goto LAB_0002dba9;\n        }" { (labeled_statement "LAB_0002dba0:\n          pcVar19 = "Unexpected data from server while waiting for agent response";" statement_identifier : (expression_statement "pcVar19 = "Unexpected data from server while waiting for agent response";" (assignment_expression "pcVar19 = "Unexpected data from server while waiting for agent response"" identifier = (string_literal ""Unexpected data from server while waiting for agent response"" " string_content ")) ;)) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (0 < inlen) {\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(0 < inlen)" ( (binary_expression "0 < inlen" number_literal < identifier) )) (compound_statement "{\nLAB_0002f388:\n          *piVar12 = 0x2696;\n          goto LAB_0002d320;\n        }" { (labeled_statement "LAB_0002f388:\n          *piVar12 = 0x2696;" statement_identifier : (expression_statement "*piVar12 = 0x2696;" (assignment_expression "*piVar12 = 0x2696" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "error = (char *)ssh->agent_response;" (assignment_expression "error = (char *)ssh->agent_response" identifier = (cast_expression "(char *)ssh->agent_response" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "ssh->agent_response" identifier -> field_identifier))) ;) (expression_statement "piVar12[0x29] = ssh->agent_response_len;" (assignment_expression "piVar12[0x29] = ssh->agent_response_len" (subscript_expression "piVar12[0x29]" identifier [ number_literal ]) = (field_expression "ssh->agent_response_len" identifier -> field_identifier)) ;) (labeled_statement "LAB_0002e806:\n        piVar12[0x2d] = (int)error;" statement_identifier : (expression_statement "piVar12[0x2d] = (int)error;" (assignment_expression "piVar12[0x2d] = (int)error" (subscript_expression "piVar12[0x2d]" identifier [ number_literal ]) = (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "safefree((void *)piVar12[0x2c]);" (call_expression "safefree((void *)piVar12[0x2c])" identifier (argument_list "((void *)piVar12[0x2c])" ( (cast_expression "(void *)piVar12[0x2c]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2c]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar20 = piVar12[0x2d];" (assignment_expression "iVar20 = piVar12[0x2d]" identifier = (subscript_expression "piVar12[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 != 0) {\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n          if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }\n          logevent(ssh->frontend,"Sending Pageant\'s response");\n          uVar22 = *(uint *)(piVar12[0x2d] + 5);\n          ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);\n          ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n          piVar12[1] = 1;\n        }" { (if_statement "if (((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))\n          {\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }" if (parenthesized_expression "(((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)))" ( (binary_expression "((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')) ||\n             (uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18))" (parenthesized_expression "((piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e'))" ( (binary_expression "(piVar12[0x29] < 9) || (*(char *)(iVar20 + 4) != '\x0e')" (parenthesized_expression "(piVar12[0x29] < 9)" ( (binary_expression "piVar12[0x29] < 9" (subscript_expression "piVar12[0x29]" identifier [ number_literal ]) < number_literal) )) || (parenthesized_expression "(*(char *)(iVar20 + 4) != '\x0e')" ( (binary_expression "*(char *)(iVar20 + 4) != '\x0e'" (pointer_expression "*(char *)(iVar20 + 4)" * (cast_expression "(char *)(iVar20 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) != (char_literal "'\x0e'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18))" ( (comma_expression "uVar22 = *(uint *)(iVar20 + 5),\n             piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" (assignment_expression "uVar22 = *(uint *)(iVar20 + 5)" identifier = (pointer_expression "*(uint *)(iVar20 + 5)" * (cast_expression "(uint *)(iVar20 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 5)" ( (binary_expression "iVar20 + 5" identifier + number_literal) ))))) , (binary_expression "piVar12[0x29] - 9U <\n             (uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" (binary_expression "piVar12[0x29] - 9U" (subscript_expression "piVar12[0x29]" identifier [ number_literal ]) - number_literal) < (parenthesized_expression "(uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18)" ( (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 | uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) )))) ))) )) (compound_statement "{\n            pcVar19 = "Pageant failed to answer challenge";\n            goto LAB_0002dba9;\n          }" { (expression_statement "pcVar19 = "Pageant failed to answer challenge";" (assignment_expression "pcVar19 = "Pageant failed to answer challenge"" identifier = (string_literal ""Pageant failed to answer challenge"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "logevent(ssh->frontend,"Sending Pageant\'s response");" (call_expression "logevent(ssh->frontend,"Sending Pageant\'s response")" identifier (argument_list "(ssh->frontend,"Sending Pageant\'s response")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Sending Pageant\'s response"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar22 = *(uint *)(piVar12[0x2d] + 5);" (assignment_expression "uVar22 = *(uint *)(piVar12[0x2d] + 5)" identifier = (pointer_expression "*(uint *)(piVar12[0x2d] + 5)" * (cast_expression "(uint *)(piVar12[0x2d] + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2d] + 5)" ( (binary_expression "piVar12[0x2d] + 5" (subscript_expression "piVar12[0x2d]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18);" (call_expression "ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18)" identifier (argument_list "((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],\n                           (void *)piVar12[0x22],piVar12[0x25],(void *)(piVar12[0x2d] + 9),\n                           uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18)" ( (cast_expression "(Ssh_conflict)ssh->remote_bugs" ( (type_descriptor "Ssh_conflict" type_identifier) ) (field_expression "ssh->remote_bugs" identifier -> field_identifier)) , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(void *)piVar12[0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x22]" identifier [ number_literal ])) , (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) , (cast_expression "(void *)(piVar12[0x2d] + 9)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2d] + 9)" ( (binary_expression "piVar12[0x2d] + 9" (subscript_expression "piVar12[0x2d]" identifier [ number_literal ]) + number_literal) ))) , (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8 |\n                           uVar22 << 0x18" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8 | (uVar22 & 0xff00) << 8" (binary_expression "uVar22 >> 0x18 | (uVar22 & 0xff0000) >> 8" (binary_expression "uVar22 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar22 & 0xff0000) >> 8" (parenthesized_expression "(uVar22 & 0xff0000)" ( (binary_expression "uVar22 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar22 & 0xff00) << 8" (parenthesized_expression "(uVar22 & 0xff00)" ( (binary_expression "uVar22 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar22 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "piVar12[1] = 1;" (assignment_expression "piVar12[1] = 1" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0002d6ed:\n        if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }" statement_identifier : (if_statement "if (piVar12[0x1f] == 0) {\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }\n        else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }" if (parenthesized_expression "(piVar12[0x1f] == 0)" ( (binary_expression "piVar12[0x1f] == 0" (subscript_expression "piVar12[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          iVar33 = piVar12[0x20];\n          iVar20 = piVar12[3];\n          piVar12[0x20] = iVar33 + 1;\n          if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }\n        }" { (expression_statement "iVar33 = piVar12[0x20];" (assignment_expression "iVar33 = piVar12[0x20]" identifier = (subscript_expression "piVar12[0x20]" identifier [ number_literal ])) ;) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x20] = iVar33 + 1;" (assignment_expression "piVar12[0x20] = iVar33 + 1" (subscript_expression "piVar12[0x20]" identifier [ number_literal ]) = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (if_statement "if (piVar12[0x21] <= iVar33 + 1) {\n            piVar12[9] = 1;\n          }" if (parenthesized_expression "(piVar12[0x21] <= iVar33 + 1)" ( (binary_expression "piVar12[0x21] <= iVar33 + 1" (subscript_expression "piVar12[0x21]" identifier [ number_literal ]) <= (binary_expression "iVar33 + 1" identifier + number_literal)) )) (compound_statement "{\n            piVar12[9] = 1;\n          }" { (expression_statement "piVar12[9] = 1;" (assignment_expression "piVar12[9] = 1" (subscript_expression "piVar12[9]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }" else (compound_statement "{\n          piVar12[9] = 1;\n          iVar20 = piVar12[3];\n          piVar12[8] = 1;\n        }" { (expression_statement "piVar12[9] = 1;" (assignment_expression "piVar12[9] = 1" (subscript_expression "piVar12[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (expression_statement "piVar12[8] = 1;" (assignment_expression "piVar12[8] = 1" (subscript_expression "piVar12[8]" identifier [ number_literal ]) = number_literal) ;) })))) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (if_statement "if (0x2696 < iVar20) {\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }" if (parenthesized_expression "(0x2696 < iVar20)" ( (binary_expression "0x2696 < iVar20" number_literal < identifier) )) (compound_statement "{\n        if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }\n        goto LAB_0002f4f1;\n      }" { (if_statement "if (iVar20 != 0x26df) {\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }" if (parenthesized_expression "(iVar20 != 0x26df)" ( (binary_expression "iVar20 != 0x26df" identifier != number_literal) )) (compound_statement "{\n          if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }\n          goto LAB_0002d8a4;\n        }" { (if_statement "if (iVar20 == 0x2703) {\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(iVar20 == 0x2703)" ( (binary_expression "iVar20 == 0x2703" identifier == number_literal) )) (compound_statement "{\n            if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }\nLAB_0002d72e:\n            *piVar12 = 0x2703;\n            goto LAB_0002d320;\n          }" { (if_statement "if (pktin == (Packet *)0x0) {\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n              ssh->send_ok = 0;\n              goto LAB_0002dd4a;\n            }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier (argument_list "((prompts_t *)piVar12[0xf],in,inlen)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "ssh->send_ok = 0;" (assignment_expression "ssh->send_ok = 0" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002dd4a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d72e:\n            *piVar12 = 0x2703;" statement_identifier : (expression_statement "*piVar12 = 0x2703;" (assignment_expression "*piVar12 = 0x2703" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (pktin != (Packet *)0x0) {\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }\n          piVar12[3] = 1;\n          piVar12[1] = 2;\n          methods = (char *)0x0;\n          error = (char *)0x0;\n          goto LAB_0002d3e0;\n        }" { (if_statement "if (pktin->type == 0x3c) {\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }" if (parenthesized_expression "(pktin->type == 0x3c)" ( (binary_expression "pktin->type == 0x3c" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            logevent(ssh->frontend,"Offer of public key accepted");\n            if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }\n            while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }\n            pFVar14 = conf_get_filename(ssh->conf,0x20);\n            piVar12[0x2f] = (int)pFVar14;\n            local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);\n            if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }\nLAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);\n            sVar8 = strlen(error);\n            c_write((Ssh_conflict)ppvVar1,error,sVar8);\n            c_write((Ssh_conflict)ppvVar1,")\r\n",3);\n            iVar20 = piVar12[3];\n            goto LAB_0002d2f8;\n          }" { (expression_statement "logevent(ssh->frontend,"Offer of public key accepted");" (call_expression "logevent(ssh->frontend,"Offer of public key accepted")" identifier (argument_list "(ssh->frontend,"Offer of public key accepted")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Offer of public key accepted"" " string_content ") ))) ;) (if_statement "if (((byte)flags & 1) != 0) {\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }" if (parenthesized_expression "(((byte)flags & 1) != 0)" ( (binary_expression "((byte)flags & 1) != 0" (parenthesized_expression "((byte)flags & 1)" ( (binary_expression "(byte)flags & 1" (cast_expression "(byte)flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n              ppvVar1 = &ssh->frontend;\n              c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n              pcVar19 = (char *)piVar12[0x19];\n              sVar8 = strlen(pcVar19);\n              c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);\n              c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);\n            }" { (expression_statement "ppvVar1 = &ssh->frontend;" (assignment_expression "ppvVar1 = &ssh->frontend" identifier = (pointer_expression "&ssh->frontend" & (field_expression "ssh->frontend" identifier -> field_identifier))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);" (call_expression "c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20)" identifier (argument_list "((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal ""Authenticating with public key \""" " string_content escape_sequence ") , number_literal ))) ;) (expression_statement "pcVar19 = (char *)piVar12[0x19];" (assignment_expression "pcVar19 = (char *)piVar12[0x19]" identifier = (cast_expression "(char *)piVar12[0x19]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x19]" identifier [ number_literal ]))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8);" (call_expression "c_write((Ssh_conflict)ppvVar1,pcVar19,sVar8)" identifier (argument_list "((Ssh_conflict)ppvVar1,pcVar19,sVar8)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , identifier , identifier ))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,"\"\r\n",3);" (call_expression "c_write((Ssh_conflict)ppvVar1,"\"\r\n",3)" identifier (argument_list "((Ssh_conflict)ppvVar1,"\"\r\n",3)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal ""\"\r\n"" " escape_sequence escape_sequence escape_sequence ") , number_literal ))) ;) })) (while_statement "while (piVar12[0x17] != 0) {\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }" while (parenthesized_expression "(piVar12[0x17] != 0)" ( (binary_expression "piVar12[0x17] != 0" (subscript_expression "piVar12[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n              ppVar18 = new_prompts(ssh->frontend);\n              piVar12[0xf] = (int)ppVar18;\n              ppVar18->to_server = 0;\n              pcVar19 = dupstr("SSH key passphrase");\n              ppVar18->name = pcVar19;\n              pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n              iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              if (iVar20 == 0) goto LAB_0002ea6c;\n              pcVar19 = dupstr((*ppVar18->prompts)->result);\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pFVar14 = conf_get_filename(ssh->conf,0x20);\n              piVar12[0x2f] = (int)pFVar14;\n              local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);\n              if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree(pcVar19);\n              if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;\n              c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);\n            }" { (expression_statement "ppVar18 = new_prompts(ssh->frontend);" (assignment_expression "ppVar18 = new_prompts(ssh->frontend)" identifier = (call_expression "new_prompts(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) )))) ;) (expression_statement "piVar12[0xf] = (int)ppVar18;" (assignment_expression "piVar12[0xf] = (int)ppVar18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) = (cast_expression "(int)ppVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ppVar18->to_server = 0;" (assignment_expression "ppVar18->to_server = 0" (field_expression "ppVar18->to_server" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar19 = dupstr("SSH key passphrase");" (assignment_expression "pcVar19 = dupstr("SSH key passphrase")" identifier = (call_expression "dupstr("SSH key passphrase")" identifier (argument_list "("SSH key passphrase")" ( (string_literal ""SSH key passphrase"" " string_content ") )))) ;) (expression_statement "ppVar18->name = pcVar19;" (assignment_expression "ppVar18->name = pcVar19" (field_expression "ppVar18->name" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19]);" (assignment_expression "pcVar19 = dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19])" identifier = (call_expression "dupprintf("Passphrase for key \"%.100s\": ",piVar12[0x19])" identifier (argument_list "("Passphrase for key \"%.100s\": ",piVar12[0x19])" ( (string_literal ""Passphrase for key \"%.100s\": "" " string_content escape_sequence string_content escape_sequence string_content ") , (subscript_expression "piVar12[0x19]" identifier [ number_literal ]) )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (labeled_statement "LAB_0002dd4a:\n              if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }" statement_identifier : (if_statement "if (iVar20 < 0) {\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n                ssh->send_ok = 1;\n                goto LAB_0002d72e;\n              }" { (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002d72e;" goto statement_identifier ;) }))) (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (if_statement "if (iVar20 == 0) goto LAB_0002ea6c;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;)) (expression_statement "pcVar19 = dupstr((*ppVar18->prompts)->result);" (assignment_expression "pcVar19 = dupstr((*ppVar18->prompts)->result)" identifier = (call_expression "dupstr((*ppVar18->prompts)->result)" identifier (argument_list "((*ppVar18->prompts)->result)" ( (field_expression "(*ppVar18->prompts)->result" (parenthesized_expression "(*ppVar18->prompts)" ( (pointer_expression "*ppVar18->prompts" * (field_expression "ppVar18->prompts" identifier -> field_identifier)) )) -> field_identifier) )))) ;) (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (expression_statement "pFVar14 = conf_get_filename(ssh->conf,0x20);" (assignment_expression "pFVar14 = conf_get_filename(ssh->conf,0x20)" identifier = (call_expression "conf_get_filename(ssh->conf,0x20)" identifier (argument_list "(ssh->conf,0x20)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "piVar12[0x2f] = (int)pFVar14;" (assignment_expression "piVar12[0x2f] = (int)pFVar14" (subscript_expression "piVar12[0x2f]" identifier [ number_literal ]) = (cast_expression "(int)pFVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error);" (assignment_expression "local_64 = ssh2_load_userkey(pFVar14,pcVar19,&error)" identifier = (call_expression "ssh2_load_userkey(pFVar14,pcVar19,&error)" identifier (argument_list "(pFVar14,pcVar19,&error)" ( identifier , identifier , (pointer_expression "&error" & identifier) )))) ;) (if_statement "if (pcVar19 == (char *)0x0) {\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }" if (parenthesized_expression "(pcVar19 == (char *)0x0)" ( (binary_expression "pcVar19 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;\n                goto LAB_0002ddec;\n              }" { (if_statement "if (local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)\n                goto LAB_0002f5cf;" if (parenthesized_expression "(local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)" ( (binary_expression "local_64 == (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" identifier == (cast_expression "(ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002f5cf;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;) })) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "smemclr(pcVar19,sVar8);" (call_expression "smemclr(pcVar19,sVar8)" identifier (argument_list "(pcVar19,sVar8)" ( identifier , identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) (if_statement "if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;" if (parenthesized_expression "(local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)" ( (binary_expression "local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" identifier != (cast_expression "(ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;)) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Wrong passphrase\r\n",0x12)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Wrong passphrase\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) })) (expression_statement "pFVar14 = conf_get_filename(ssh->conf,0x20);" (assignment_expression "pFVar14 = conf_get_filename(ssh->conf,0x20)" identifier = (call_expression "conf_get_filename(ssh->conf,0x20)" identifier (argument_list "(ssh->conf,0x20)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "piVar12[0x2f] = (int)pFVar14;" (assignment_expression "piVar12[0x2f] = (int)pFVar14" (subscript_expression "piVar12[0x2f]" identifier [ number_literal ]) = (cast_expression "(int)pFVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error);" (assignment_expression "local_64 = ssh2_load_userkey(pFVar14,(char *)0x0,&error)" identifier = (call_expression "ssh2_load_userkey(pFVar14,(char *)0x0,&error)" identifier (argument_list "(pFVar14,(char *)0x0,&error)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (pointer_expression "&error" & identifier) )))) ;) (if_statement "if (local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac) {\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }" if (parenthesized_expression "(local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac)" ( (binary_expression "local_64 != (ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" identifier != (cast_expression "(ssh2_userkey *)PTR_ssh2_wrong_passphrase_000a4fac" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\nLAB_0002ddec:\n              local_60 = &error;\n              if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }\n            }" { (labeled_statement "LAB_0002ddec:\n              local_60 = &error;" statement_identifier : (expression_statement "local_60 = &error;" (assignment_expression "local_60 = &error" identifier = (pointer_expression "&error" & identifier)) ;)) (if_statement "if (local_64 != (ssh2_userkey *)0x0) {\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }" if (parenthesized_expression "(local_64 != (ssh2_userkey *)0x0)" ( (binary_expression "local_64 != (ssh2_userkey *)0x0" identifier != (cast_expression "(ssh2_userkey *)0x0" ( (type_descriptor "ssh2_userkey *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pPVar11 = ssh2_pkt_init(0x32);\n                pcVar19 = ssh->username;\n                piVar12[0x2e] = (int)pPVar11;\n                ssh_pkt_addstring(pPVar11,pcVar19);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n                error = (char *)CONCAT31(error._1_3_,1);\n                ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);\n                puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);\n                pPVar11 = (Packet *)piVar12[0x2e];\n                x[0] = '\0';\n                x[1] = '\0';\n                x[2] = '\0';\n                x[3] = '\0';\n                ssh_pkt_adddata(pPVar11,x,4);\n                pPVar11->savedpos = pPVar11->length;\n                ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);\n                sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n                if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }\n                pcVar19 = (char *)safemalloc(sVar9,1);\n                if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }\n                memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);\n                local_54 = local_54 + ssh->v2_session_id_len;\n                memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);\n                if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }\n                sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);\n                ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);\n                safefree(puVar15);\n                safefree(sigblob_v);\n                safefree(pcVar19);\n                ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);\n                logevent(ssh->frontend,"Sent public key signature");\n                piVar12[1] = 1;\n                (*local_64->alg->freekey)(local_64->data);\n                safefree(local_64->comment);\n                safefree(local_64);\n                iVar20 = piVar12[3];\n                goto LAB_0002d2f8;\n              }" { (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey")" identifier (argument_list "((Packet *)piVar12[0x2e],"publickey")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""publickey"" " string_content ") ))) ;) (expression_statement "error = (char *)CONCAT31(error._1_3_,1);" (assignment_expression "error = (char *)CONCAT31(error._1_3_,1)" identifier = (cast_expression "(char *)CONCAT31(error._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(error._1_3_,1)" identifier (argument_list "(error._1_3_,1)" ( (field_expression "error._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],local_60,1)" identifier (argument_list "((Packet *)piVar12[0x2e],local_60,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name);" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],local_64->alg->name)" identifier (argument_list "((Packet *)piVar12[0x2e],local_64->alg->name)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (field_expression "local_64->alg->name" (field_expression "local_64->alg" identifier -> field_identifier) -> field_identifier) ))) ;) (expression_statement "puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods);" (assignment_expression "puVar15 = (*local_64->alg->public_blob)(local_64->data,(int *)&methods)" identifier = (call_expression "(*local_64->alg->public_blob)(local_64->data,(int *)&methods)" (parenthesized_expression "(*local_64->alg->public_blob)" ( (pointer_expression "*local_64->alg->public_blob" * (field_expression "local_64->alg->public_blob" (field_expression "local_64->alg" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(local_64->data,(int *)&methods)" ( (field_expression "local_64->data" identifier -> field_identifier) , (cast_expression "(int *)&methods" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&methods" & identifier)) )))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods)" identifier (argument_list "((Packet *)piVar12[0x2e],(char *)puVar15,(int)methods)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(char *)puVar15" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)methods" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;" (assignment_expression "sVar9 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len" identifier = (binary_expression "*(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len" (binary_expression "*(int *)piVar12[0x2e] + -1" (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) + number_literal) + (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) ;) (if_statement "if ((ssh->remote_bugs & 0x80) != 0) {\n                  sVar9 = sVar9 - 4;\n                }" if (parenthesized_expression "((ssh->remote_bugs & 0x80) != 0)" ( (binary_expression "(ssh->remote_bugs & 0x80) != 0" (parenthesized_expression "(ssh->remote_bugs & 0x80)" ( (binary_expression "ssh->remote_bugs & 0x80" (field_expression "ssh->remote_bugs" identifier -> field_identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n                  sVar9 = sVar9 - 4;\n                }" { (expression_statement "sVar9 = sVar9 - 4;" (assignment_expression "sVar9 = sVar9 - 4" identifier = (binary_expression "sVar9 - 4" identifier - number_literal)) ;) })) (expression_statement "pcVar19 = (char *)safemalloc(sVar9,1);" (assignment_expression "pcVar19 = (char *)safemalloc(sVar9,1)" identifier = (cast_expression "(char *)safemalloc(sVar9,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(sVar9,1)" identifier (argument_list "(sVar9,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((ssh->remote_bugs & 0x80) == 0) {\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }\n                else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }" if (parenthesized_expression "((ssh->remote_bugs & 0x80) == 0)" ( (binary_expression "(ssh->remote_bugs & 0x80) == 0" (parenthesized_expression "(ssh->remote_bugs & 0x80)" ( (binary_expression "ssh->remote_bugs & 0x80" (field_expression "ssh->remote_bugs" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n                  local_54 = 4;\n                  *pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);\n                  pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n                  pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);\n                  pcVar19[3] = (char)ssh->v2_session_id_len;\n                  pcVar35 = pcVar19 + 4;\n                }" { (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "*pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3);" (assignment_expression "*pcVar19 = *(char *)((int)&ssh->v2_session_id_len + 3)" (pointer_expression "*pcVar19" * identifier) = (pointer_expression "*(char *)((int)&ssh->v2_session_id_len + 3)" * (cast_expression "(char *)((int)&ssh->v2_session_id_len + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ssh->v2_session_id_len + 3)" ( (binary_expression "(int)&ssh->v2_session_id_len + 3" (cast_expression "(int)&ssh->v2_session_id_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ssh->v2_session_id_len" & (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);" (assignment_expression "pcVar19[1] = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" (subscript_expression "pcVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" * (cast_expression "(undefined2 *)((int)&ssh->v2_session_id_len + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ssh->v2_session_id_len + 2)" ( (binary_expression "(int)&ssh->v2_session_id_len + 2" (cast_expression "(int)&ssh->v2_session_id_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ssh->v2_session_id_len" & (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) + number_literal) )))))) ;) (expression_statement "pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8);" (assignment_expression "pcVar19[2] = (char)((uint)ssh->v2_session_id_len >> 8)" (subscript_expression "pcVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)ssh->v2_session_id_len >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ssh->v2_session_id_len >> 8)" ( (binary_expression "(uint)ssh->v2_session_id_len >> 8" (cast_expression "(uint)ssh->v2_session_id_len" ( (type_descriptor "uint" type_identifier) ) (field_expression "ssh->v2_session_id_len" identifier -> field_identifier)) >> number_literal) )))) ;) (expression_statement "pcVar19[3] = (char)ssh->v2_session_id_len;" (assignment_expression "pcVar19[3] = (char)ssh->v2_session_id_len" (subscript_expression "pcVar19[3]" identifier [ number_literal ]) = (cast_expression "(char)ssh->v2_session_id_len" ( (type_descriptor "char" primitive_type) ) (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) ;) (expression_statement "pcVar35 = pcVar19 + 4;" (assignment_expression "pcVar35 = pcVar19 + 4" identifier = (binary_expression "pcVar19 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }" else (compound_statement "{\n                  local_54 = 0;\n                  pcVar35 = pcVar19;\n                }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "pcVar35 = pcVar19;" (assignment_expression "pcVar35 = pcVar19" identifier = identifier) ;) }))) (expression_statement "memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len);" (call_expression "memcpy(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len)" identifier (argument_list "(pcVar35,ssh->v2_session_id,ssh->v2_session_id_len)" ( identifier , (field_expression "ssh->v2_session_id" identifier -> field_identifier) , (field_expression "ssh->v2_session_id_len" identifier -> field_identifier) ))) ;) (expression_statement "local_54 = local_54 + ssh->v2_session_id_len;" (assignment_expression "local_54 = local_54 + ssh->v2_session_id_len" identifier = (binary_expression "local_54 + ssh->v2_session_id_len" identifier + (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) ;) (expression_statement "memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5);" (call_expression "memcpy(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5)" identifier (argument_list "(pcVar19 + local_54,(void *)(((int *)piVar12[0x2e])[4] + 5),\n                       *(int *)piVar12[0x2e] - 5)" ( (binary_expression "pcVar19 + local_54" identifier + identifier) , (cast_expression "(void *)(((int *)piVar12[0x2e])[4] + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)piVar12[0x2e])[4] + 5)" ( (binary_expression "((int *)piVar12[0x2e])[4] + 5" (subscript_expression "((int *)piVar12[0x2e])[4]" (parenthesized_expression "((int *)piVar12[0x2e])" ( (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) )) [ number_literal ]) + number_literal) ))) , (binary_expression "*(int *)piVar12[0x2e] - 5" (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) - number_literal) ))) ;) (if_statement "if (sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]) {\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }" if (parenthesized_expression "(sVar9 != local_54 + -5 + *(int *)piVar12[0x2e])" ( (binary_expression "sVar9 != local_54 + -5 + *(int *)piVar12[0x2e]" identifier != (binary_expression "local_54 + -5 + *(int *)piVar12[0x2e]" (binary_expression "local_54 + -5" identifier + number_literal) + (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n                  __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n                }" { comment (expression_statement "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");" (call_expression "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" identifier (argument_list "("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" ( (string_literal ""p == sigdata_len"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60);" (assignment_expression "sigblob_v = (*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60)" identifier = (call_expression "(*local_64->alg->sign)(local_64->data,pcVar19,sVar9,(int *)local_60)" (parenthesized_expression "(*local_64->alg->sign)" ( (pointer_expression "*local_64->alg->sign" * (field_expression "local_64->alg->sign" (field_expression "local_64->alg" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(local_64->data,pcVar19,sVar9,(int *)local_60)" ( (field_expression "local_64->data" identifier -> field_identifier) , identifier , identifier , (cast_expression "(int *)local_60" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error);" (call_expression "ssh2_add_sigblob((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error)" identifier (argument_list "((Ssh_conflict)ssh->remote_bugs,(Packet *)piVar12[0x2e],puVar15,\n                                 (int)methods,sigblob_v,(int)error)" ( (cast_expression "(Ssh_conflict)ssh->remote_bugs" ( (type_descriptor "Ssh_conflict" type_identifier) ) (field_expression "ssh->remote_bugs" identifier -> field_identifier)) , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , (cast_expression "(int)methods" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(int)error" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (expression_statement "safefree(puVar15);" (call_expression "safefree(puVar15)" identifier (argument_list "(puVar15)" ( identifier ))) ;) (expression_statement "safefree(sigblob_v);" (call_expression "safefree(sigblob_v)" identifier (argument_list "(sigblob_v)" ( identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) (expression_statement "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e]);" (call_expression "ssh2_pkt_send(ssh,(Packet *)piVar12[0x2e])" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e])" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) ))) ;) (expression_statement "logevent(ssh->frontend,"Sent public key signature");" (call_expression "logevent(ssh->frontend,"Sent public key signature")" identifier (argument_list "(ssh->frontend,"Sent public key signature")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Sent public key signature"" " string_content ") ))) ;) (expression_statement "piVar12[1] = 1;" (assignment_expression "piVar12[1] = 1" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(*local_64->alg->freekey)(local_64->data);" (call_expression "(*local_64->alg->freekey)(local_64->data)" (parenthesized_expression "(*local_64->alg->freekey)" ( (pointer_expression "*local_64->alg->freekey" * (field_expression "local_64->alg->freekey" (field_expression "local_64->alg" identifier -> field_identifier) -> field_identifier)) )) (argument_list "(local_64->data)" ( (field_expression "local_64->data" identifier -> field_identifier) ))) ;) (expression_statement "safefree(local_64->comment);" (call_expression "safefree(local_64->comment)" identifier (argument_list "(local_64->comment)" ( (field_expression "local_64->comment" identifier -> field_identifier) ))) ;) (expression_statement "safefree(local_64);" (call_expression "safefree(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002f5cf:\n            ppvVar1 = &ssh->frontend;" statement_identifier : (expression_statement "ppvVar1 = &ssh->frontend;" (assignment_expression "ppvVar1 = &ssh->frontend" identifier = (pointer_expression "&ssh->frontend" & (field_expression "ssh->frontend" identifier -> field_identifier))) ;)) (expression_statement "c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c);" (call_expression "c_write((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c)" identifier (argument_list "((Ssh_conflict)ppvVar1,"Unable to load private key (",0x1c)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal ""Unable to load private key ("" " string_content ") , number_literal ))) ;) (expression_statement "sVar8 = strlen(error);" (assignment_expression "sVar8 = strlen(error)" identifier = (call_expression "strlen(error)" identifier (argument_list "(error)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,error,sVar8);" (call_expression "c_write((Ssh_conflict)ppvVar1,error,sVar8)" identifier (argument_list "((Ssh_conflict)ppvVar1,error,sVar8)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , identifier , identifier ))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,")\r\n",3);" (call_expression "c_write((Ssh_conflict)ppvVar1,")\r\n",3)" identifier (argument_list "((Ssh_conflict)ppvVar1,")\r\n",3)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal "")\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[1] = 2;" (assignment_expression "piVar12[1] = 2" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "methods = (char *)0x0;" (assignment_expression "methods = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "error = (char *)0x0;" (assignment_expression "error = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002f4f1;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x25a0) {\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }" if (parenthesized_expression "(iVar20 == 0x25a0)" ( (binary_expression "iVar20 == 0x25a0" identifier == number_literal) )) (compound_statement "{\n        if (pktin != (Packet *)0x0) goto LAB_0002d3e0;\n        goto LAB_0002d310;\n      }" { (if_statement "if (pktin != (Packet *)0x0) goto LAB_0002d3e0;" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;) })) (if_statement "if (iVar20 != 0x2650) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar20 != 0x2650)" ( (binary_expression "iVar20 != 0x2650" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (pktin != (Packet *)0x0) {\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }\n        piVar12[3] = 1;\n        goto LAB_0002d6ed;\n      }" { (if_statement "if (pktin->type == 0x3c) {\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }" if (parenthesized_expression "(pktin->type == 0x3c)" ( (binary_expression "pktin->type == 0x3c" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");\n          error = (char *)CONCAT31(error._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x23];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);\n          pPVar11 = (Packet *)piVar12[0x2e];\n          x[0] = '\0';\n          x[1] = '\0';\n          x[2] = '\0';\n          x[3] = '\0';\n          ssh_pkt_adddata(pPVar11,x,4);\n          pcVar19 = (char *)piVar12[0x22];\n          pPVar11->savedpos = pPVar11->length;\n          ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);\n          iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;\n          piVar12[0x28] = iVar20;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }\n          iVar20 = iVar20 + 5 + piVar12[0x25];\n          piVar12[0x2a] = iVar20 + 4;\n          puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);\n          piVar12[0x2c] = (int)puVar23;\n          *puVar23 = *(undefined1 *)((int)piVar12 + 0xab);\n          *(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);\n          *(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);\n          *(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];\n          piVar12[0x2b] = piVar12[0x2c] + 5;\n          *(undefined1 *)(piVar12[0x2c] + 4) = 0xd;\n          *(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = iVar20 + 4;\n          memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);\n          iVar20 = piVar12[0x2b];\n          piVar12[0x2b] = piVar12[0x25] + iVar20;\n          *(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);\n          *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);\n          *(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);\n          *(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];\n          iVar20 = piVar12[0x2b];\n          pvVar24 = (void *)(iVar20 + 4);\n          piVar12[0x2b] = (int)pvVar24;\n          if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }\n          memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);\n          pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);\n          iVar20 = *(int *)piVar12[0x2e];\n          iVar33 = ((int *)piVar12[0x2e])[4];\n          piVar12[0x2b] = (int)pvVar24;\n          memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);\n          puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);\n          piVar12[0x2b] = (int)puVar23;\n          *puVar23 = 0;\n          *(undefined1 *)(piVar12[0x2b] + 1) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 2) = 0;\n          *(undefined1 *)(piVar12[0x2b] + 3) = 0;\n          paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);\n          ssh->auth_agent_query = paVar25;\n          if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;\n          goto LAB_0002e806;\n        }" { (if_statement "if (((byte)flags & 1) != 0) {\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }" if (parenthesized_expression "(((byte)flags & 1) != 0)" ( (binary_expression "((byte)flags & 1) != 0" (parenthesized_expression "((byte)flags & 1)" ( (binary_expression "(byte)flags & 1" (cast_expression "(byte)flags" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            ppvVar1 = &ssh->frontend;\n            c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);\n            c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);\n            c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);\n          }" { (expression_statement "ppvVar1 = &ssh->frontend;" (assignment_expression "ppvVar1 = &ssh->frontend" identifier = (pointer_expression "&ssh->frontend" & (field_expression "ssh->frontend" identifier -> field_identifier))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20);" (call_expression "c_write((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20)" identifier (argument_list "((Ssh_conflict)ppvVar1,"Authenticating with public key \"",0x20)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal ""Authenticating with public key \""" " string_content escape_sequence ") , number_literal ))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27]);" (call_expression "c_write((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27])" identifier (argument_list "((Ssh_conflict)ppvVar1,(char *)piVar12[0x24],piVar12[0x27])" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (cast_expression "(char *)piVar12[0x24]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x24]" identifier [ number_literal ])) , (subscript_expression "piVar12[0x27]" identifier [ number_literal ]) ))) ;) (expression_statement "c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe);" (call_expression "c_write((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe)" identifier (argument_list "((Ssh_conflict)ppvVar1,"\" from agent\r\n",0xe)" ( (cast_expression "(Ssh_conflict)ppvVar1" ( (type_descriptor "Ssh_conflict" type_identifier) ) identifier) , (string_literal ""\" from agent\r\n"" " escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))) ;) })) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"publickey")" identifier (argument_list "((Packet *)piVar12[0x2e],"publickey")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""publickey"" " string_content ") ))) ;) (expression_statement "error = (char *)CONCAT31(error._1_3_,1);" (assignment_expression "error = (char *)CONCAT31(error._1_3_,1)" identifier = (cast_expression "(char *)CONCAT31(error._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(error._1_3_,1)" identifier (argument_list "(error._1_3_,1)" ( (field_expression "error._1_3_" identifier . field_identifier) , number_literal ))))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&error,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&error,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&error" & identifier) , number_literal ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar19 = (char *)piVar12[0x23];" (assignment_expression "pcVar19 = (char *)piVar12[0x23]" identifier = (cast_expression "(char *)piVar12[0x23]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x23]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26]);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26])" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,piVar12[0x26])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , (subscript_expression "piVar12[0x26]" identifier [ number_literal ]) ))) ;) (expression_statement "pPVar11 = (Packet *)piVar12[0x2e];" (assignment_expression "pPVar11 = (Packet *)piVar12[0x2e]" identifier = (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "x[0] = '\0';" (assignment_expression "x[0] = '\0'" (subscript_expression "x[0]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[1] = '\0';" (assignment_expression "x[1] = '\0'" (subscript_expression "x[1]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[2] = '\0';" (assignment_expression "x[2] = '\0'" (subscript_expression "x[2]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x[3] = '\0';" (assignment_expression "x[3] = '\0'" (subscript_expression "x[3]" identifier [ number_literal ]) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "ssh_pkt_adddata(pPVar11,x,4);" (call_expression "ssh_pkt_adddata(pPVar11,x,4)" identifier (argument_list "(pPVar11,x,4)" ( identifier , identifier , number_literal ))) ;) (expression_statement "pcVar19 = (char *)piVar12[0x22];" (assignment_expression "pcVar19 = (char *)piVar12[0x22]" identifier = (cast_expression "(char *)piVar12[0x22]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x22]" identifier [ number_literal ]))) ;) (expression_statement "pPVar11->savedpos = pPVar11->length;" (assignment_expression "pPVar11->savedpos = pPVar11->length" (field_expression "pPVar11->savedpos" identifier -> field_identifier) = (field_expression "pPVar11->length" identifier -> field_identifier)) ;) (expression_statement "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25]);" (call_expression "ssh_pkt_addstring_data((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25])" identifier (argument_list "((Packet *)piVar12[0x2e],pcVar19,piVar12[0x25])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier , (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len;" (assignment_expression "iVar20 = *(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len" identifier = (binary_expression "*(int *)piVar12[0x2e] + -1 + ssh->v2_session_id_len" (binary_expression "*(int *)piVar12[0x2e] + -1" (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]))) + number_literal) + (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) ;) (expression_statement "piVar12[0x28] = iVar20;" (assignment_expression "piVar12[0x28] = iVar20" (subscript_expression "piVar12[0x28]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((ssh->remote_bugs & 0x80) == 0) {\n            iVar20 = iVar20 + 4;\n          }\n          else {\n            piVar12[0x28] = iVar20 + -4;\n          }" if (parenthesized_expression "((ssh->remote_bugs & 0x80) == 0)" ( (binary_expression "(ssh->remote_bugs & 0x80) == 0" (parenthesized_expression "(ssh->remote_bugs & 0x80)" ( (binary_expression "ssh->remote_bugs & 0x80" (field_expression "ssh->remote_bugs" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            iVar20 = iVar20 + 4;\n          }" { (expression_statement "iVar20 = iVar20 + 4;" (assignment_expression "iVar20 = iVar20 + 4" identifier = (binary_expression "iVar20 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n            piVar12[0x28] = iVar20 + -4;\n          }" else (compound_statement "{\n            piVar12[0x28] = iVar20 + -4;\n          }" { (expression_statement "piVar12[0x28] = iVar20 + -4;" (assignment_expression "piVar12[0x28] = iVar20 + -4" (subscript_expression "piVar12[0x28]" identifier [ number_literal ]) = (binary_expression "iVar20 + -4" identifier + number_literal)) ;) }))) (expression_statement "iVar20 = iVar20 + 5 + piVar12[0x25];" (assignment_expression "iVar20 = iVar20 + 5 + piVar12[0x25]" identifier = (binary_expression "iVar20 + 5 + piVar12[0x25]" (binary_expression "iVar20 + 5" identifier + number_literal) + (subscript_expression "piVar12[0x25]" identifier [ number_literal ]))) ;) (expression_statement "piVar12[0x2a] = iVar20 + 4;" (assignment_expression "piVar12[0x2a] = iVar20 + 4" (subscript_expression "piVar12[0x2a]" identifier [ number_literal ]) = (binary_expression "iVar20 + 4" identifier + number_literal)) ;) (expression_statement "puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1);" (assignment_expression "puVar23 = (undefined1 *)safemalloc(iVar20 + 8,1)" identifier = (cast_expression "(undefined1 *)safemalloc(iVar20 + 8,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "safemalloc(iVar20 + 8,1)" identifier (argument_list "(iVar20 + 8,1)" ( (binary_expression "iVar20 + 8" identifier + number_literal) , number_literal ))))) ;) (expression_statement "piVar12[0x2c] = (int)puVar23;" (assignment_expression "piVar12[0x2c] = (int)puVar23" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) = (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar23 = *(undefined1 *)((int)piVar12 + 0xab);" (assignment_expression "*puVar23 = *(undefined1 *)((int)piVar12 + 0xab)" (pointer_expression "*puVar23" * identifier) = (pointer_expression "*(undefined1 *)((int)piVar12 + 0xab)" * (cast_expression "(undefined1 *)((int)piVar12 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xab)" ( (binary_expression "(int)piVar12 + 0xab" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa);" (assignment_expression "*(char *)(piVar12[0x2c] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xaa)" (pointer_expression "*(char *)(piVar12[0x2c] + 1)" * (cast_expression "(char *)(piVar12[0x2c] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2c] + 1)" ( (binary_expression "piVar12[0x2c] + 1" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar12 + 0xaa)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar12 + 0xaa)" * (cast_expression "(undefined2 *)((int)piVar12 + 0xaa)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xaa)" ( (binary_expression "(int)piVar12 + 0xaa" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8);" (assignment_expression "*(char *)(piVar12[0x2c] + 2) = (char)((uint)piVar12[0x2a] >> 8)" (pointer_expression "*(char *)(piVar12[0x2c] + 2)" * (cast_expression "(char *)(piVar12[0x2c] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2c] + 2)" ( (binary_expression "piVar12[0x2c] + 2" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar12[0x2a] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar12[0x2a] >> 8)" ( (binary_expression "(uint)piVar12[0x2a] >> 8" (cast_expression "(uint)piVar12[0x2a]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[0x2a]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a];" (assignment_expression "*(char *)(piVar12[0x2c] + 3) = (char)piVar12[0x2a]" (pointer_expression "*(char *)(piVar12[0x2c] + 3)" * (cast_expression "(char *)(piVar12[0x2c] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2c] + 3)" ( (binary_expression "piVar12[0x2c] + 3" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar12[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[0x2a]" identifier [ number_literal ]))) ;) (expression_statement "piVar12[0x2b] = piVar12[0x2c] + 5;" (assignment_expression "piVar12[0x2b] = piVar12[0x2c] + 5" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar12[0x2c] + 5" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined1 *)(piVar12[0x2c] + 4) = 0xd;" (assignment_expression "*(undefined1 *)(piVar12[0x2c] + 4) = 0xd" (pointer_expression "*(undefined1 *)(piVar12[0x2c] + 4)" * (cast_expression "(undefined1 *)(piVar12[0x2c] + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2c] + 4)" ( (binary_expression "piVar12[0x2c] + 4" (subscript_expression "piVar12[0x2c]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97);" (assignment_expression "*(undefined1 *)piVar12[0x2b] = *(undefined1 *)((int)piVar12 + 0x97)" (pointer_expression "*(undefined1 *)piVar12[0x2b]" * (cast_expression "(undefined1 *)piVar12[0x2b]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]))) = (pointer_expression "*(undefined1 *)((int)piVar12 + 0x97)" * (cast_expression "(undefined1 *)((int)piVar12 + 0x97)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x97)" ( (binary_expression "(int)piVar12 + 0x97" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96);" (assignment_expression "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0x96)" (pointer_expression "*(char *)(piVar12[0x2b] + 1)" * (cast_expression "(char *)(piVar12[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 1)" ( (binary_expression "piVar12[0x2b] + 1" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar12 + 0x96)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar12 + 0x96)" * (cast_expression "(undefined2 *)((int)piVar12 + 0x96)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0x96)" ( (binary_expression "(int)piVar12 + 0x96" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8);" (assignment_expression "*(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x25] >> 8)" (pointer_expression "*(char *)(piVar12[0x2b] + 2)" * (cast_expression "(char *)(piVar12[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 2)" ( (binary_expression "piVar12[0x2b] + 2" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar12[0x25] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar12[0x25] >> 8)" ( (binary_expression "(uint)piVar12[0x25] >> 8" (cast_expression "(uint)piVar12[0x25]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[0x25]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25];" (assignment_expression "*(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x25]" (pointer_expression "*(char *)(piVar12[0x2b] + 3)" * (cast_expression "(char *)(piVar12[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 3)" ( (binary_expression "piVar12[0x2b] + 3" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar12[0x25]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[0x25]" identifier [ number_literal ]))) ;) (expression_statement "iVar20 = piVar12[0x2b];" (assignment_expression "iVar20 = piVar12[0x2b]" identifier = (subscript_expression "piVar12[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x2b] = iVar20 + 4;" (assignment_expression "piVar12[0x2b] = iVar20 + 4" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (binary_expression "iVar20 + 4" identifier + number_literal)) ;) (expression_statement "memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25]);" (call_expression "memcpy((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25])" identifier (argument_list "((void *)(iVar20 + 4),(void *)piVar12[0x22],piVar12[0x25])" ( (cast_expression "(void *)(iVar20 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) ))) , (cast_expression "(void *)piVar12[0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x22]" identifier [ number_literal ])) , (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar20 = piVar12[0x2b];" (assignment_expression "iVar20 = piVar12[0x2b]" identifier = (subscript_expression "piVar12[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar12[0x2b] = piVar12[0x25] + iVar20;" (assignment_expression "piVar12[0x2b] = piVar12[0x25] + iVar20" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar12[0x25] + iVar20" (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3);" (assignment_expression "*(undefined1 *)(piVar12[0x25] + iVar20) = *(undefined1 *)((int)piVar12 + 0xa3)" (pointer_expression "*(undefined1 *)(piVar12[0x25] + iVar20)" * (cast_expression "(undefined1 *)(piVar12[0x25] + iVar20)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x25] + iVar20)" ( (binary_expression "piVar12[0x25] + iVar20" (subscript_expression "piVar12[0x25]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined1 *)((int)piVar12 + 0xa3)" * (cast_expression "(undefined1 *)((int)piVar12 + 0xa3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xa3)" ( (binary_expression "(int)piVar12 + 0xa3" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2);" (assignment_expression "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)piVar12 + 0xa2)" (pointer_expression "*(char *)(piVar12[0x2b] + 1)" * (cast_expression "(char *)(piVar12[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 1)" ( (binary_expression "piVar12[0x2b] + 1" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar12 + 0xa2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar12 + 0xa2)" * (cast_expression "(undefined2 *)((int)piVar12 + 0xa2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 0xa2)" ( (binary_expression "(int)piVar12 + 0xa2" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8);" (assignment_expression "*(char *)(piVar12[0x2b] + 2) = (char)((uint)piVar12[0x28] >> 8)" (pointer_expression "*(char *)(piVar12[0x2b] + 2)" * (cast_expression "(char *)(piVar12[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 2)" ( (binary_expression "piVar12[0x2b] + 2" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar12[0x28] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar12[0x28] >> 8)" ( (binary_expression "(uint)piVar12[0x28] >> 8" (cast_expression "(uint)piVar12[0x28]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar12[0x28]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28];" (assignment_expression "*(char *)(piVar12[0x2b] + 3) = (char)piVar12[0x28]" (pointer_expression "*(char *)(piVar12[0x2b] + 3)" * (cast_expression "(char *)(piVar12[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 3)" ( (binary_expression "piVar12[0x2b] + 3" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar12[0x28]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar12[0x28]" identifier [ number_literal ]))) ;) (expression_statement "iVar20 = piVar12[0x2b];" (assignment_expression "iVar20 = piVar12[0x2b]" identifier = (subscript_expression "piVar12[0x2b]" identifier [ number_literal ])) ;) (expression_statement "pvVar24 = (void *)(iVar20 + 4);" (assignment_expression "pvVar24 = (void *)(iVar20 + 4)" identifier = (cast_expression "(void *)(iVar20 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar12[0x2b] = (int)pvVar24;" (assignment_expression "piVar12[0x2b] = (int)pvVar24" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((ssh->remote_bugs & 0x80) == 0) {\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }" if (parenthesized_expression "((ssh->remote_bugs & 0x80) == 0)" ( (binary_expression "(ssh->remote_bugs & 0x80) == 0" (parenthesized_expression "(ssh->remote_bugs & 0x80)" ( (binary_expression "ssh->remote_bugs & 0x80" (field_expression "ssh->remote_bugs" identifier -> field_identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n            *(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);\n            *(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);\n            *(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);\n            *(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;\n            pvVar24 = (void *)(piVar12[0x2b] + 4);\n            piVar12[0x2b] = (int)pvVar24;\n          }" { (expression_statement "*(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3);" (assignment_expression "*(undefined1 *)(iVar20 + 4) = *(undefined1 *)((int)&ssh->v2_session_id_len + 3)" (pointer_expression "*(undefined1 *)(iVar20 + 4)" * (cast_expression "(undefined1 *)(iVar20 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)((int)&ssh->v2_session_id_len + 3)" * (cast_expression "(undefined1 *)((int)&ssh->v2_session_id_len + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ssh->v2_session_id_len + 3)" ( (binary_expression "(int)&ssh->v2_session_id_len + 3" (cast_expression "(int)&ssh->v2_session_id_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ssh->v2_session_id_len" & (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2);" (assignment_expression "*(char *)(piVar12[0x2b] + 1) = (char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" (pointer_expression "*(char *)(piVar12[0x2b] + 1)" * (cast_expression "(char *)(piVar12[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 1)" ( (binary_expression "piVar12[0x2b] + 1" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)&ssh->v2_session_id_len + 2)" * (cast_expression "(undefined2 *)((int)&ssh->v2_session_id_len + 2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ssh->v2_session_id_len + 2)" ( (binary_expression "(int)&ssh->v2_session_id_len + 2" (cast_expression "(int)&ssh->v2_session_id_len" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ssh->v2_session_id_len" & (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8);" (assignment_expression "*(char *)(piVar12[0x2b] + 2) = (char)((uint)ssh->v2_session_id_len >> 8)" (pointer_expression "*(char *)(piVar12[0x2b] + 2)" * (cast_expression "(char *)(piVar12[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 2)" ( (binary_expression "piVar12[0x2b] + 2" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)ssh->v2_session_id_len >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)ssh->v2_session_id_len >> 8)" ( (binary_expression "(uint)ssh->v2_session_id_len >> 8" (cast_expression "(uint)ssh->v2_session_id_len" ( (type_descriptor "uint" type_identifier) ) (field_expression "ssh->v2_session_id_len" identifier -> field_identifier)) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len;" (assignment_expression "*(char *)(piVar12[0x2b] + 3) = (char)ssh->v2_session_id_len" (pointer_expression "*(char *)(piVar12[0x2b] + 3)" * (cast_expression "(char *)(piVar12[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 3)" ( (binary_expression "piVar12[0x2b] + 3" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)ssh->v2_session_id_len" ( (type_descriptor "char" primitive_type) ) (field_expression "ssh->v2_session_id_len" identifier -> field_identifier))) ;) (expression_statement "pvVar24 = (void *)(piVar12[0x2b] + 4);" (assignment_expression "pvVar24 = (void *)(piVar12[0x2b] + 4)" identifier = (cast_expression "(void *)(piVar12[0x2b] + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 4)" ( (binary_expression "piVar12[0x2b] + 4" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar12[0x2b] = (int)pvVar24;" (assignment_expression "piVar12[0x2b] = (int)pvVar24" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);" (call_expression "memcpy(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len)" identifier (argument_list "(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len)" ( identifier , (field_expression "ssh->v2_session_id" identifier -> field_identifier) , (field_expression "ssh->v2_session_id_len" identifier -> field_identifier) ))) ;) (expression_statement "pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b]);" (assignment_expression "pvVar24 = (void *)(ssh->v2_session_id_len + piVar12[0x2b])" identifier = (cast_expression "(void *)(ssh->v2_session_id_len + piVar12[0x2b])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(ssh->v2_session_id_len + piVar12[0x2b])" ( (binary_expression "ssh->v2_session_id_len + piVar12[0x2b]" (field_expression "ssh->v2_session_id_len" identifier -> field_identifier) + (subscript_expression "piVar12[0x2b]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar20 = *(int *)piVar12[0x2e];" (assignment_expression "iVar20 = *(int *)piVar12[0x2e]" identifier = (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])))) ;) (expression_statement "iVar33 = ((int *)piVar12[0x2e])[4];" (assignment_expression "iVar33 = ((int *)piVar12[0x2e])[4]" identifier = (subscript_expression "((int *)piVar12[0x2e])[4]" (parenthesized_expression "((int *)piVar12[0x2e])" ( (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar12[0x2b] = (int)pvVar24;" (assignment_expression "piVar12[0x2b] = (int)pvVar24" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5);" (call_expression "memcpy(pvVar24,(void *)(iVar33 + 5),iVar20 - 5)" identifier (argument_list "(pvVar24,(void *)(iVar33 + 5),iVar20 - 5)" ( identifier , (cast_expression "(void *)(iVar33 + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar33 + 5)" ( (binary_expression "iVar33 + 5" identifier + number_literal) ))) , (binary_expression "iVar20 - 5" identifier - number_literal) ))) ;) (expression_statement "puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]);" (assignment_expression "puVar23 = (undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e])" identifier = (cast_expression "(undefined1 *)(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + -5 + *(int *)piVar12[0x2e])" ( (binary_expression "piVar12[0x2b] + -5 + *(int *)piVar12[0x2e]" (binary_expression "piVar12[0x2b] + -5" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) + (pointer_expression "*(int *)piVar12[0x2e]" * (cast_expression "(int *)piVar12[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])))) )))) ;) (expression_statement "piVar12[0x2b] = (int)puVar23;" (assignment_expression "piVar12[0x2b] = (int)puVar23" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)puVar23" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar23 = 0;" (assignment_expression "*puVar23 = 0" (pointer_expression "*puVar23" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar12[0x2b] + 1) = 0;" (assignment_expression "*(undefined1 *)(piVar12[0x2b] + 1) = 0" (pointer_expression "*(undefined1 *)(piVar12[0x2b] + 1)" * (cast_expression "(undefined1 *)(piVar12[0x2b] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 1)" ( (binary_expression "piVar12[0x2b] + 1" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar12[0x2b] + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar12[0x2b] + 2) = 0" (pointer_expression "*(undefined1 *)(piVar12[0x2b] + 2)" * (cast_expression "(undefined1 *)(piVar12[0x2b] + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 2)" ( (binary_expression "piVar12[0x2b] + 2" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar12[0x2b] + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar12[0x2b] + 3) = 0" (pointer_expression "*(undefined1 *)(piVar12[0x2b] + 3)" * (cast_expression "(undefined1 *)(piVar12[0x2b] + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0x2b] + 3)" ( (binary_expression "piVar12[0x2b] + 3" (subscript_expression "piVar12[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh);" (assignment_expression "paVar25 = agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh)" identifier = (call_expression "agent_query((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh)" identifier (argument_list "((void *)piVar12[0x2c],piVar12[0x2a] + 4,&error,piVar12 + 0x29,\n                                ssh_agent_callback,ssh)" ( (cast_expression "(void *)piVar12[0x2c]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2c]" identifier [ number_literal ])) , (binary_expression "piVar12[0x2a] + 4" (subscript_expression "piVar12[0x2a]" identifier [ number_literal ]) + number_literal) , (pointer_expression "&error" & identifier) , (binary_expression "piVar12 + 0x29" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "ssh->auth_agent_query = paVar25;" (assignment_expression "ssh->auth_agent_query = paVar25" (field_expression "ssh->auth_agent_query" identifier -> field_identifier) = identifier) ;) (if_statement "if (paVar25 != (agent_pending_query *)0x0) goto LAB_0002f388;" if (parenthesized_expression "(paVar25 != (agent_pending_query *)0x0)" ( (binary_expression "paVar25 != (agent_pending_query *)0x0" identifier != (cast_expression "(agent_pending_query *)0x0" ( (type_descriptor "agent_pending_query *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f388;" goto statement_identifier ;)) (goto_statement "goto LAB_0002e806;" goto statement_identifier ;) })) (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d6ed;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e2e0:\n      *piVar12 = 0x2650;" statement_identifier : (expression_statement "*piVar12 = 0x2650;" (assignment_expression "*piVar12 = 0x2650" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x2917) {\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 == 0x2917)" ( (binary_expression "iVar20 == 0x2917" identifier == number_literal) )) (compound_statement "{\n      if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }\nLAB_0002dd1c:\n      *piVar12 = 0x2917;\n      goto LAB_0002d320;\n    }" { (if_statement "if (pktin != (Packet *)0x0) {\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar20 = pktin->type;\n        pcVar19 = "Server requested password change";\njoined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }\n        pcVar19 = (char *)piVar12[0x12];\n        piVar12[3] = 1;\n        sVar8 = strlen(pcVar19);\n        smemclr(pcVar19,sVar8);\n        safefree((void *)piVar12[0x12]);\n        iVar20 = piVar12[3];\n        goto LAB_0002d2f8;\n      }" { (expression_statement "iVar20 = pktin->type;" (assignment_expression "iVar20 = pktin->type" identifier = (field_expression "pktin->type" identifier -> field_identifier)) ;) (expression_statement "pcVar19 = "Server requested password change";" (assignment_expression "pcVar19 = "Server requested password change"" identifier = (string_literal ""Server requested password change"" " string_content ")) ;) (labeled_statement "joined_r0x0002e302:\n        if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }" statement_identifier : (if_statement "if (iVar20 == 0x3c) {\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar20 == 0x3c)" ( (binary_expression "iVar20 == 0x3c" identifier == number_literal) )) (compound_statement "{\n          logevent(ssh->frontend,pcVar19);\n          sVar8 = strlen(pcVar19);\n          c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);\n          c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);\n          ssh_pkt_getstring(pktin,&methods,(int *)&error);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          pcVar19 = dupstr("New SSH password");\n          ppVar18->name = pcVar19;\n          iVar20 = piVar12[0xf];\n          pcVar19 = methods;\n          if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }\n          pcVar19 = dupprintf("%.*s",error,pcVar19);\n          *(char **)(iVar20 + 0xc) = pcVar19;\n          *(undefined4 *)(piVar12[0xf] + 0x10) = 1;\n          pcVar19 = dupstr("Current password (blank for previously entered password): ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Enter new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          pcVar19 = dupstr("Confirm new password: ");\n          add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);\n          while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }\n          pPVar11 = ssh2_pkt_init(0x32);\n          pcVar19 = ssh->username;\n          piVar12[0x2e] = (int)pPVar11;\n          ssh_pkt_addstring(pPVar11,pcVar19);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");\n          len = CONCAT31(len._1_3_,1);\n          ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);\n          ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));\n          free_prompts((prompts_t *)piVar12[0xf]);\n          ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);\n          logevent(ssh->frontend,"Sent new password");\nLAB_0002e515:\n          *piVar12 = 0x2999;\n          goto LAB_0002d320;\n        }" { (expression_statement "logevent(ssh->frontend,pcVar19);" (call_expression "logevent(ssh->frontend,pcVar19)" identifier (argument_list "(ssh->frontend,pcVar19)" ( (field_expression "ssh->frontend" identifier -> field_identifier) , identifier ))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,pcVar19,sVar8)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , identifier , identifier ))) ;) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"\r\n",2);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"\r\n",2)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"\r\n",2)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""\r\n"" " escape_sequence escape_sequence ") , number_literal ))) ;) (expression_statement "ssh_pkt_getstring(pktin,&methods,(int *)&error);" (call_expression "ssh_pkt_getstring(pktin,&methods,(int *)&error)" identifier (argument_list "(pktin,&methods,(int *)&error)" ( identifier , (pointer_expression "&methods" & identifier) , (cast_expression "(int *)&error" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&error" & identifier)) ))) ;) (expression_statement "ppVar18 = new_prompts(ssh->frontend);" (assignment_expression "ppVar18 = new_prompts(ssh->frontend)" identifier = (call_expression "new_prompts(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) )))) ;) (expression_statement "piVar12[0xf] = (int)ppVar18;" (assignment_expression "piVar12[0xf] = (int)ppVar18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) = (cast_expression "(int)ppVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ppVar18->to_server = 1;" (assignment_expression "ppVar18->to_server = 1" (field_expression "ppVar18->to_server" identifier -> field_identifier) = number_literal) ;) (expression_statement "pcVar19 = dupstr("New SSH password");" (assignment_expression "pcVar19 = dupstr("New SSH password")" identifier = (call_expression "dupstr("New SSH password")" identifier (argument_list "("New SSH password")" ( (string_literal ""New SSH password"" " string_content ") )))) ;) (expression_statement "ppVar18->name = pcVar19;" (assignment_expression "ppVar18->name = pcVar19" (field_expression "ppVar18->name" identifier -> field_identifier) = identifier) ;) (expression_statement "iVar20 = piVar12[0xf];" (assignment_expression "iVar20 = piVar12[0xf]" identifier = (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ;) (expression_statement "pcVar19 = methods;" (assignment_expression "pcVar19 = methods" identifier = identifier) ;) (if_statement "if (methods == (char *)0x0) {\n            pcVar19 = "";\n          }" if (parenthesized_expression "(methods == (char *)0x0)" ( (binary_expression "methods == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar19 = "";\n          }" { (expression_statement "pcVar19 = "";" (assignment_expression "pcVar19 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "pcVar19 = dupprintf("%.*s",error,pcVar19);" (assignment_expression "pcVar19 = dupprintf("%.*s",error,pcVar19)" identifier = (call_expression "dupprintf("%.*s",error,pcVar19)" identifier (argument_list "("%.*s",error,pcVar19)" ( (string_literal ""%.*s"" " string_content ") , identifier , identifier )))) ;) (expression_statement "*(char **)(iVar20 + 0xc) = pcVar19;" (assignment_expression "*(char **)(iVar20 + 0xc) = pcVar19" (pointer_expression "*(char **)(iVar20 + 0xc)" * (cast_expression "(char **)(iVar20 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0xc)" ( (binary_expression "iVar20 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(piVar12[0xf] + 0x10) = 1;" (assignment_expression "*(undefined4 *)(piVar12[0xf] + 0x10) = 1" (pointer_expression "*(undefined4 *)(piVar12[0xf] + 0x10)" * (cast_expression "(undefined4 *)(piVar12[0xf] + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xf] + 0x10)" ( (binary_expression "piVar12[0xf] + 0x10" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "pcVar19 = dupstr("Current password (blank for previously entered password): ");" (assignment_expression "pcVar19 = dupstr("Current password (blank for previously entered password): ")" identifier = (call_expression "dupstr("Current password (blank for previously entered password): ")" identifier (argument_list "("Current password (blank for previously entered password): ")" ( (string_literal ""Current password (blank for previously entered password): "" " string_content ") )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "pcVar19 = dupstr("Enter new password: ");" (assignment_expression "pcVar19 = dupstr("Enter new password: ")" identifier = (call_expression "dupstr("Enter new password: ")" identifier (argument_list "("Enter new password: ")" ( (string_literal ""Enter new password: "" " string_content ") )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (expression_statement "pcVar19 = dupstr("Confirm new password: ");" (assignment_expression "pcVar19 = dupstr("Confirm new password: ")" identifier = (call_expression "dupstr("Confirm new password: ")" identifier (argument_list "("Confirm new password: ")" ( (string_literal ""Confirm new password: "" " string_content ") )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , number_literal ))) ;) (while_statement "while( true ) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);\nLAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }\n            if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }\n            pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;\n            if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }\n            iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);\n            if (iVar20 == 0) break;\n            c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);\n          }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" identifier (argument_list "((prompts_t *)piVar12[0xf],(uchar *)0x0,0)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (labeled_statement "LAB_0002e42a:\n            if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }" statement_identifier : (if_statement "if (iVar20 < 0) {\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }" if (parenthesized_expression "(iVar20 < 0)" ( (binary_expression "iVar20 < 0" identifier < number_literal) )) (compound_statement "{\n              ssh->send_ok = 1;\n              goto LAB_0002e5f0;\n            }" { (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002e5f0;" goto statement_identifier ;) }))) (if_statement "if (iVar20 == 0) {\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              free_prompts((prompts_t *)piVar12[0xf]);\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              goto LAB_0002ea71;\n            }" { (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (expression_statement "pcVar19 = (char *)piVar12[0x12];" (assignment_expression "pcVar19 = (char *)piVar12[0x12]" identifier = (cast_expression "(char *)piVar12[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "smemclr(pcVar19,sVar8);" (call_expression "smemclr(pcVar19,sVar8)" identifier (argument_list "(pcVar19,sVar8)" ( identifier , identifier ))) ;) (expression_statement "safefree((void *)piVar12[0x12]);" (call_expression "safefree((void *)piVar12[0x12])" identifier (argument_list "((void *)piVar12[0x12])" ( (cast_expression "(void *)piVar12[0x12]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) ;) (goto_statement "goto LAB_0002ea71;" goto statement_identifier ;) })) (expression_statement "pppVar17 = ((prompts_t *)piVar12[0xf])->prompts;" (assignment_expression "pppVar17 = ((prompts_t *)piVar12[0xf])->prompts" identifier = (field_expression "((prompts_t *)piVar12[0xf])->prompts" (parenthesized_expression "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) )) -> field_identifier)) ;) (if_statement "if (*(*pppVar17)->result != '\0') {\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }" if (parenthesized_expression "(*(*pppVar17)->result != '\0')" ( (binary_expression "*(*pppVar17)->result != '\0'" (pointer_expression "*(*pppVar17)->result" * (field_expression "(*pppVar17)->result" (parenthesized_expression "(*pppVar17)" ( (pointer_expression "*pppVar17" * identifier) )) -> field_identifier)) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              pcVar19 = (char *)piVar12[0x12];\n              sVar8 = strlen(pcVar19);\n              smemclr(pcVar19,sVar8);\n              safefree((void *)piVar12[0x12]);\n              pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));\n              piVar12[0x12] = (int)pcVar19;\n              pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);\n            }" { (expression_statement "pcVar19 = (char *)piVar12[0x12];" (assignment_expression "pcVar19 = (char *)piVar12[0x12]" identifier = (cast_expression "(char *)piVar12[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "smemclr(pcVar19,sVar8);" (call_expression "smemclr(pcVar19,sVar8)" identifier (argument_list "(pcVar19,sVar8)" ( identifier , identifier ))) ;) (expression_statement "safefree((void *)piVar12[0x12]);" (call_expression "safefree((void *)piVar12[0x12])" identifier (argument_list "((void *)piVar12[0x12])" ( (cast_expression "(void *)piVar12[0x12]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) ;) (expression_statement "pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8));" (assignment_expression "pcVar19 = dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8))" identifier = (call_expression "dupstr(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8))" identifier (argument_list "(*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8))" ( (pointer_expression "*(char **)(**(int **)(piVar12[0xf] + 0x18) + 8)" * (cast_expression "(char **)(**(int **)(piVar12[0xf] + 0x18) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(**(int **)(piVar12[0xf] + 0x18) + 8)" ( (binary_expression "**(int **)(piVar12[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar12[0xf] + 0x18)" * (pointer_expression "*(int **)(piVar12[0xf] + 0x18)" * (cast_expression "(int **)(piVar12[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar12[0xf] + 0x18)" ( (binary_expression "piVar12[0xf] + 0x18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "piVar12[0x12] = (int)pcVar19;" (assignment_expression "piVar12[0x12] = (int)pcVar19" (subscript_expression "piVar12[0x12]" identifier [ number_literal ]) = (cast_expression "(int)pcVar19" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18);" (assignment_expression "pppVar17 = *(prompt_t ***)(piVar12[0xf] + 0x18)" identifier = (pointer_expression "*(prompt_t ***)(piVar12[0xf] + 0x18)" * (cast_expression "(prompt_t ***)(piVar12[0xf] + 0x18)" ( (type_descriptor "prompt_t ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(piVar12[0xf] + 0x18)" ( (binary_expression "piVar12[0xf] + 0x18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) + number_literal) ))))) ;) })) (expression_statement "iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result);" (assignment_expression "iVar20 = strcmp(pppVar17[1]->result,pppVar17[2]->result)" identifier = (call_expression "strcmp(pppVar17[1]->result,pppVar17[2]->result)" identifier (argument_list "(pppVar17[1]->result,pppVar17[2]->result)" ( (field_expression "pppVar17[1]->result" (subscript_expression "pppVar17[1]" identifier [ number_literal ]) -> field_identifier) , (field_expression "pppVar17[2]->result" (subscript_expression "pppVar17[2]" identifier [ number_literal ]) -> field_identifier) )))) ;) (if_statement "if (iVar20 == 0) break;" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18);" (call_expression "c_write((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18)" identifier (argument_list "((Ssh_conflict)&ssh->frontend,"Passwords do not match\r\n",0x18)" ( (binary_expression "(Ssh_conflict)&ssh->frontend" (parenthesized_expression "(Ssh_conflict)" ( identifier )) & (field_expression "ssh->frontend" identifier -> field_identifier)) , (string_literal ""Passwords do not match\r\n"" " string_content escape_sequence escape_sequence ") , number_literal ))) ;) })) (expression_statement "pPVar11 = ssh2_pkt_init(0x32);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x32)" identifier = (call_expression "ssh2_pkt_init(0x32)" identifier (argument_list "(0x32)" ( number_literal )))) ;) (expression_statement "pcVar19 = ssh->username;" (assignment_expression "pcVar19 = ssh->username" identifier = (field_expression "ssh->username" identifier -> field_identifier)) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_addstring(pPVar11,pcVar19);" (call_expression "ssh_pkt_addstring(pPVar11,pcVar19)" identifier (argument_list "(pPVar11,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"ssh-connection")" identifier (argument_list "((Packet *)piVar12[0x2e],"ssh-connection")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""ssh-connection"" " string_content ") ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],"password");" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],"password")" identifier (argument_list "((Packet *)piVar12[0x2e],"password")" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (string_literal ""password"" " string_content ") ))) ;) (expression_statement "len = CONCAT31(len._1_3_,1);" (assignment_expression "len = CONCAT31(len._1_3_,1)" identifier = (call_expression "CONCAT31(len._1_3_,1)" identifier (argument_list "(len._1_3_,1)" ( (field_expression "len._1_3_" identifier . field_identifier) , number_literal )))) ;) (expression_statement "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1);" (call_expression "ssh_pkt_adddata((Packet *)piVar12[0x2e],&len,1)" identifier (argument_list "((Packet *)piVar12[0x2e],&len,1)" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "&len" & identifier) , number_literal ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12]);" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],(char *)piVar12[0x12])" identifier (argument_list "((Packet *)piVar12[0x2e],(char *)piVar12[0x12])" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (cast_expression "(char *)piVar12[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8));" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8))" identifier (argument_list "((Packet *)piVar12[0x2e],\n                            *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8))" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "*(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8)" * (cast_expression "(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8)" ( (binary_expression "*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4) + 8" (pointer_expression "*(int *)(*(int *)(piVar12[0xf] + 0x18) + 4)" * (cast_expression "(int *)(*(int *)(piVar12[0xf] + 0x18) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar12[0xf] + 0x18) + 4)" ( (binary_expression "*(int *)(piVar12[0xf] + 0x18) + 4" (pointer_expression "*(int *)(piVar12[0xf] + 0x18)" * (cast_expression "(int *)(piVar12[0xf] + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xf] + 0x18)" ( (binary_expression "piVar12[0xf] + 0x18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) + number_literal) )))) + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (expression_statement "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00);" (call_expression "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],padsize_00)" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e],padsize_00)" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "logevent(ssh->frontend,"Sent new password");" (call_expression "logevent(ssh->frontend,"Sent new password")" identifier (argument_list "(ssh->frontend,"Sent new password")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Sent new password"" " string_content ") ))) ;) (labeled_statement "LAB_0002e515:\n          *piVar12 = 0x2999;" statement_identifier : (expression_statement "*piVar12 = 0x2999;" (assignment_expression "*piVar12 = 0x2999" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "pcVar19 = (char *)piVar12[0x12];" (assignment_expression "pcVar19 = (char *)piVar12[0x12]" identifier = (cast_expression "(char *)piVar12[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ]))) ;) (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar8 = strlen(pcVar19);" (assignment_expression "sVar8 = strlen(pcVar19)" identifier = (call_expression "strlen(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;) (expression_statement "smemclr(pcVar19,sVar8);" (call_expression "smemclr(pcVar19,sVar8)" identifier (argument_list "(pcVar19,sVar8)" ( identifier , identifier ))) ;) (expression_statement "safefree((void *)piVar12[0x12]);" (call_expression "safefree((void *)piVar12[0x12])" identifier (argument_list "((void *)piVar12[0x12])" ( (cast_expression "(void *)piVar12[0x12]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x12]" identifier [ number_literal ])) ))) ;) (expression_statement "iVar20 = piVar12[3];" (assignment_expression "iVar20 = piVar12[3]" identifier = (subscript_expression "piVar12[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dd1c:\n      *piVar12 = 0x2917;" statement_identifier : (expression_statement "*piVar12 = 0x2917;" (assignment_expression "*piVar12 = 0x2917" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 < 0x2918) {\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 < 0x2918)" ( (binary_expression "iVar20 < 0x2918" identifier < number_literal) )) (compound_statement "{\n      if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }\n      goto LAB_0002d320;\n    }" { (if_statement "if (iVar20 == 0x28a4) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }\n      else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }" if (parenthesized_expression "(iVar20 == 0x28a4)" ( (binary_expression "iVar20 == 0x28a4" identifier == number_literal) )) (compound_statement "{\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }\n        *piVar12 = 0x28a4;\n      }" { (if_statement "if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\nLAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }\n          ssh->send_ok = 1;\n        }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier (argument_list "((prompts_t *)piVar12[0xf],in,inlen)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "ssh->send_ok = 0;" (assignment_expression "ssh->send_ok = 0" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (labeled_statement "LAB_0002f51a:\n          if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }" statement_identifier : (if_statement "if (-1 < iVar20) {\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }" if (parenthesized_expression "(-1 < iVar20)" ( (binary_expression "-1 < iVar20" number_literal < identifier) )) (compound_statement "{\n            if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }\n            iVar33 = 0;\n            pPVar11 = ssh2_pkt_init(0x3d);\n            piVar12[0x2e] = (int)pPVar11;\n            ssh_pkt_adduint32(pPVar11,piVar12[0x10]);\n            iVar20 = extraout_ECX;\n            if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }\n            ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);\n            free_prompts((prompts_t *)piVar12[0xf]);\n            goto LAB_0002f35a;\n          }" { (if_statement "if (iVar20 == 0) {\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }" if (parenthesized_expression "(iVar20 == 0)" ( (binary_expression "iVar20 == 0" identifier == number_literal) )) (compound_statement "{\n              ppVar18 = (prompts_t *)piVar12[0xf];\n              goto LAB_0002ea6c;\n            }" { (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;) })) (expression_statement "iVar33 = 0;" (assignment_expression "iVar33 = 0" identifier = number_literal) ;) (expression_statement "pPVar11 = ssh2_pkt_init(0x3d);" (assignment_expression "pPVar11 = ssh2_pkt_init(0x3d)" identifier = (call_expression "ssh2_pkt_init(0x3d)" identifier (argument_list "(0x3d)" ( number_literal )))) ;) (expression_statement "piVar12[0x2e] = (int)pPVar11;" (assignment_expression "piVar12[0x2e] = (int)pPVar11" (subscript_expression "piVar12[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)pPVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ssh_pkt_adduint32(pPVar11,piVar12[0x10]);" (call_expression "ssh_pkt_adduint32(pPVar11,piVar12[0x10])" identifier (argument_list "(pPVar11,piVar12[0x10])" ( identifier , (subscript_expression "piVar12[0x10]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar20 = extraout_ECX;" (assignment_expression "iVar20 = extraout_ECX" identifier = identifier) ;) (if_statement "if (0 < piVar12[0x10]) {\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }" if (parenthesized_expression "(0 < piVar12[0x10])" ( (binary_expression "0 < piVar12[0x10]" number_literal < (subscript_expression "piVar12[0x10]" identifier [ number_literal ])) )) (compound_statement "{\n              do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);\n            }" { (do_statement "do {\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              } while (iVar33 < piVar12[0x10]);" do (compound_statement "{\n                iVar20 = iVar33 * 4;\n                iVar33 = iVar33 + 1;\n                ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));\n                iVar20 = extraout_ECX_00;\n              }" { (expression_statement "iVar20 = iVar33 * 4;" (assignment_expression "iVar20 = iVar33 * 4" identifier = (binary_expression "iVar33 * 4" identifier * number_literal)) ;) (expression_statement "iVar33 = iVar33 + 1;" (assignment_expression "iVar33 = iVar33 + 1" identifier = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8));" (call_expression "ssh_pkt_addstring((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8))" identifier (argument_list "((Packet *)piVar12[0x2e],\n                                  *(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8))" ( (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , (pointer_expression "*(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8)" * (cast_expression "(char **)(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8)" ( (binary_expression "*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20) + 8" (pointer_expression "*(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20)" * (cast_expression "(int *)(*(int *)(piVar12[0xf] + 0x18) + iVar20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(piVar12[0xf] + 0x18) + iVar20)" ( (binary_expression "*(int *)(piVar12[0xf] + 0x18) + iVar20" (pointer_expression "*(int *)(piVar12[0xf] + 0x18)" * (cast_expression "(int *)(piVar12[0xf] + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar12[0xf] + 0x18)" ( (binary_expression "piVar12[0xf] + 0x18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) + number_literal) )))) + identifier) )))) + number_literal) )))) ))) ;) (expression_statement "iVar20 = extraout_ECX_00;" (assignment_expression "iVar20 = extraout_ECX_00" identifier = identifier) ;) }) while (parenthesized_expression "(iVar33 < piVar12[0x10])" ( (binary_expression "iVar33 < piVar12[0x10]" identifier < (subscript_expression "piVar12[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20);" (call_expression "ssh2_pkt_send_with_padding(ssh,(Packet *)piVar12[0x2e],iVar20)" identifier (argument_list "(ssh,(Packet *)piVar12[0x2e],iVar20)" ( identifier , (cast_expression "(Packet *)piVar12[0x2e]" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0x2e]" identifier [ number_literal ])) , identifier ))) ;) (expression_statement "free_prompts((prompts_t *)piVar12[0xf]);" (call_expression "free_prompts((prompts_t *)piVar12[0xf])" identifier (argument_list "((prompts_t *)piVar12[0xf])" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ))) ;) (goto_statement "goto LAB_0002f35a;" goto statement_identifier ;) }))) (expression_statement "ssh->send_ok = 1;" (assignment_expression "ssh->send_ok = 1" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "*piVar12 = 0x28a4;" (assignment_expression "*piVar12 = 0x28a4" (pointer_expression "*piVar12" * identifier) = number_literal) ;) }) (else_clause "else {\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }" else (compound_statement "{\n        if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }\n        if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }\n        if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }\nLAB_0002f35a:\n        *piVar12 = 0x28ca;\n      }" { (if_statement "if (iVar20 < 0x28a5) {\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }" if (parenthesized_expression "(iVar20 < 0x28a5)" ( (binary_expression "iVar20 < 0x28a5" identifier < number_literal) )) (compound_statement "{\n          if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }\n          if (iVar20 != 0x284b) goto LAB_0002d8a4;\n          if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\n          goto LAB_0002e166;\n        }" { (if_statement "if (iVar20 == 0x2807) {\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }" if (parenthesized_expression "(iVar20 == 0x2807)" ( (binary_expression "iVar20 == 0x2807" identifier == number_literal) )) (compound_statement "{\n            if (pktin == (Packet *)0x0) goto LAB_0002fcf7;\n            if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }\n            logevent(ssh->frontend,"GSSAPI authentication - bad server response");\n            piVar12[0x39] = 4;\n            goto LAB_0002e970;\n          }" { (if_statement "if (pktin == (Packet *)0x0) goto LAB_0002fcf7;" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fcf7;" goto statement_identifier ;)) (if_statement "if (pktin->type == 0x3d) {\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }" if (parenthesized_expression "(pktin->type == 0x3d)" ( (binary_expression "pktin->type == 0x3d" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n              ssh_pkt_getstring(pktin,&methods,&len);\n              piVar12[0x35] = (int)methods;\n              piVar12[0x34] = len;\n              iVar20 = piVar12[0x39];\n              if (iVar20 == 1) goto LAB_0002efad;\n              goto LAB_0002f049;\n            }" { (expression_statement "ssh_pkt_getstring(pktin,&methods,&len);" (call_expression "ssh_pkt_getstring(pktin,&methods,&len)" identifier (argument_list "(pktin,&methods,&len)" ( identifier , (pointer_expression "&methods" & identifier) , (pointer_expression "&len" & identifier) ))) ;) (expression_statement "piVar12[0x35] = (int)methods;" (assignment_expression "piVar12[0x35] = (int)methods" (subscript_expression "piVar12[0x35]" identifier [ number_literal ]) = (cast_expression "(int)methods" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar12[0x34] = len;" (assignment_expression "piVar12[0x34] = len" (subscript_expression "piVar12[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar20 = piVar12[0x39];" (assignment_expression "iVar20 = piVar12[0x39]" identifier = (subscript_expression "piVar12[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar20 == 1) goto LAB_0002efad;" if (parenthesized_expression "(iVar20 == 1)" ( (binary_expression "iVar20 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0002efad;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f049;" goto statement_identifier ;) })) (expression_statement "logevent(ssh->frontend,"GSSAPI authentication - bad server response");" (call_expression "logevent(ssh->frontend,"GSSAPI authentication - bad server response")" identifier (argument_list "(ssh->frontend,"GSSAPI authentication - bad server response")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""GSSAPI authentication - bad server response"" " string_content ") ))) ;) (expression_statement "piVar12[0x39] = 4;" (assignment_expression "piVar12[0x39] = 4" (subscript_expression "piVar12[0x39]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e970;" goto statement_identifier ;) })) (if_statement "if (iVar20 != 0x284b) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar20 != 0x284b)" ( (binary_expression "iVar20 != 0x284b" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (pktin != (Packet *)0x0) {\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            if (pktin->type == 0x3c) goto LAB_0002eda0;\n            piVar12[3] = 1;\n            piVar12[1] = 7;\n            piVar12[0xc] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }" { (if_statement "if (pktin->type == 0x3c) goto LAB_0002eda0;" if (parenthesized_expression "(pktin->type == 0x3c)" ( (binary_expression "pktin->type == 0x3c" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (goto_statement "goto LAB_0002eda0;" goto statement_identifier ;)) (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[1] = 7;" (assignment_expression "piVar12[1] = 7" (subscript_expression "piVar12[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar12[0xc] = 1;" (assignment_expression "piVar12[0xc] = 1" (subscript_expression "piVar12[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "methods = (char *)0x0;" (assignment_expression "methods = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "error = (char *)0x0;" (assignment_expression "error = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e166;" goto statement_identifier ;) })) (if_statement "if (iVar20 != 0x28ca) {\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }" if (parenthesized_expression "(iVar20 != 0x28ca)" ( (binary_expression "iVar20 != 0x28ca" identifier != number_literal) )) (compound_statement "{\n          if (iVar20 != 0x28e8) goto LAB_0002d8a4;\n          if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }\n          goto LAB_0002d68e;\n        }" { (if_statement "if (iVar20 != 0x28e8) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar20 != 0x28e8)" ( (binary_expression "iVar20 != 0x28e8" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (pktin == (Packet *)0x0) {\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n            ssh->send_ok = 0;\n            goto LAB_0002dc60;\n          }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier (argument_list "((prompts_t *)piVar12[0xf],in,inlen)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "ssh->send_ok = 0;" (assignment_expression "ssh->send_ok = 0" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002dc60;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d68e;" goto statement_identifier ;) })) (if_statement "if (pktin != (Packet *)0x0) {\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }\nLAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);\n          ssh_pkt_getstring(pktin,&inst,&inst_len);\n          ssh_pkt_getstring(pktin,&lang,&len);\n          ppVar18 = new_prompts(ssh->frontend);\n          piVar12[0xf] = (int)ppVar18;\n          ppVar18->to_server = 1;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          piVar12[0x10] = uVar21;\n          if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }\n          iVar20 = piVar12[0xf];\n          if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }\n          if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }\n          iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);\n          goto LAB_0002f51a;\n        }" { (if_statement "if (pktin->type != 0x3c) {\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }" if (parenthesized_expression "(pktin->type != 0x3c)" ( (binary_expression "pktin->type != 0x3c" (field_expression "pktin->type" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n            piVar12[3] = 1;\n            methods = (char *)0x0;\n            error = (char *)0x0;\n            goto LAB_0002d3e0;\n          }" { (expression_statement "piVar12[3] = 1;" (assignment_expression "piVar12[3] = 1" (subscript_expression "piVar12[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "methods = (char *)0x0;" (assignment_expression "methods = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "error = (char *)0x0;" (assignment_expression "error = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0002eda0:\n          ssh_pkt_getstring(pktin,&name,&name_len);" statement_identifier : (expression_statement "ssh_pkt_getstring(pktin,&name,&name_len);" (call_expression "ssh_pkt_getstring(pktin,&name,&name_len)" identifier (argument_list "(pktin,&name,&name_len)" ( identifier , (pointer_expression "&name" & identifier) , (pointer_expression "&name_len" & identifier) ))) ;)) (expression_statement "ssh_pkt_getstring(pktin,&inst,&inst_len);" (call_expression "ssh_pkt_getstring(pktin,&inst,&inst_len)" identifier (argument_list "(pktin,&inst,&inst_len)" ( identifier , (pointer_expression "&inst" & identifier) , (pointer_expression "&inst_len" & identifier) ))) ;) (expression_statement "ssh_pkt_getstring(pktin,&lang,&len);" (call_expression "ssh_pkt_getstring(pktin,&lang,&len)" identifier (argument_list "(pktin,&lang,&len)" ( identifier , (pointer_expression "&lang" & identifier) , (pointer_expression "&len" & identifier) ))) ;) (expression_statement "ppVar18 = new_prompts(ssh->frontend);" (assignment_expression "ppVar18 = new_prompts(ssh->frontend)" identifier = (call_expression "new_prompts(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) )))) ;) (expression_statement "piVar12[0xf] = (int)ppVar18;" (assignment_expression "piVar12[0xf] = (int)ppVar18" (subscript_expression "piVar12[0xf]" identifier [ number_literal ]) = (cast_expression "(int)ppVar18" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "ppVar18->to_server = 1;" (assignment_expression "ppVar18->to_server = 1" (field_expression "ppVar18->to_server" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar21 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar21 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "piVar12[0x10] = uVar21;" (assignment_expression "piVar12[0x10] = uVar21" (subscript_expression "piVar12[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (0 < (int)uVar21) {\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }" if (parenthesized_expression "(0 < (int)uVar21)" ( (binary_expression "0 < (int)uVar21" number_literal < (cast_expression "(int)uVar21" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n            iVar20 = 0;\n            do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);\n          }" { (expression_statement "iVar20 = 0;" (assignment_expression "iVar20 = 0" identifier = number_literal) ;) (do_statement "do {\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            } while (iVar20 < piVar12[0x10]);" do (compound_statement "{\n              ssh_pkt_getstring(pktin,&methods,(int *)&error);\n              iVar33 = pktin->savedpos;\n              uVar22 = 0;\n              if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }\n              if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }\n              iVar20 = iVar20 + 1;\n              pcVar19 = dupprintf("%.*s",error,methods);\n              add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);\n            }" { (expression_statement "ssh_pkt_getstring(pktin,&methods,(int *)&error);" (call_expression "ssh_pkt_getstring(pktin,&methods,(int *)&error)" identifier (argument_list "(pktin,&methods,(int *)&error)" ( identifier , (pointer_expression "&methods" & identifier) , (cast_expression "(int *)&error" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&error" & identifier)) ))) ;) (expression_statement "iVar33 = pktin->savedpos;" (assignment_expression "iVar33 = pktin->savedpos" identifier = (field_expression "pktin->savedpos" identifier -> field_identifier)) ;) (expression_statement "uVar22 = 0;" (assignment_expression "uVar22 = 0" identifier = number_literal) ;) (if_statement "if (pktin->length != iVar33 && -1 < pktin->length - iVar33) {\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }" if (parenthesized_expression "(pktin->length != iVar33 && -1 < pktin->length - iVar33)" ( (binary_expression "pktin->length != iVar33 && -1 < pktin->length - iVar33" (binary_expression "pktin->length != iVar33" (field_expression "pktin->length" identifier -> field_identifier) != identifier) && (binary_expression "-1 < pktin->length - iVar33" number_literal < (binary_expression "pktin->length - iVar33" (field_expression "pktin->length" identifier -> field_identifier) - identifier))) )) (compound_statement "{\n                uVar4 = pktin->body[iVar33];\n                pktin->savedpos = iVar33 + 1;\n                uVar22 = (uint)(uVar4 != '\0');\n              }" { (expression_statement "uVar4 = pktin->body[iVar33];" (assignment_expression "uVar4 = pktin->body[iVar33]" identifier = (subscript_expression "pktin->body[iVar33]" (field_expression "pktin->body" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "pktin->savedpos = iVar33 + 1;" (assignment_expression "pktin->savedpos = iVar33 + 1" (field_expression "pktin->savedpos" identifier -> field_identifier) = (binary_expression "iVar33 + 1" identifier + number_literal)) ;) (expression_statement "uVar22 = (uint)(uVar4 != '\0');" (assignment_expression "uVar22 = (uint)(uVar4 != '\0')" identifier = (call_expression "(uint)(uVar4 != '\0')" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != '\0')" ( (binary_expression "uVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )))) ;) })) (if_statement "if (error == (char *)0x0) {\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }" if (parenthesized_expression "(error == (char *)0x0)" ( (binary_expression "error == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                methods = do_ssh2_authconn::lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;\n                error = (char *)0x20;\n              }" { (ERROR "methods = do_ssh2_authconn::" (assignment_expression "methods = do_ssh2_authconn" identifier = identifier) : :) (labeled_statement "lexical_block_10::lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_5::\n                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;" statement_identifier : (ERROR ":" :) (labeled_statement "lexical_block_10_5_6_7::noprompt;" statement_identifier : (ERROR ":" :) (expression_statement "noprompt;" identifier ;))))) (expression_statement "error = (char *)0x20;" (assignment_expression "error = (char *)0x20" identifier = (cast_expression "(char *)0x20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "pcVar19 = dupprintf("%.*s",error,methods);" (assignment_expression "pcVar19 = dupprintf("%.*s",error,methods)" identifier = (call_expression "dupprintf("%.*s",error,methods)" identifier (argument_list "("%.*s",error,methods)" ( (string_literal ""%.*s"" " string_content ") , identifier , identifier )))) ;) (expression_statement "add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22);" (call_expression "add_prompt((prompts_t *)piVar12[0xf],pcVar19,uVar22)" identifier (argument_list "((prompts_t *)piVar12[0xf],pcVar19,uVar22)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar20 < piVar12[0x10])" ( (binary_expression "iVar20 < piVar12[0x10]" identifier < (subscript_expression "piVar12[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "iVar20 = piVar12[0xf];" (assignment_expression "iVar20 = piVar12[0xf]" identifier = (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) ;) (if_statement "if (name_len == 0) {\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }\n          else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }" if (parenthesized_expression "(name_len == 0)" ( (binary_expression "name_len == 0" identifier == number_literal) )) (compound_statement "{\n            pcVar19 = dupstr("SSH server authentication");\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 0;\n          }" { (expression_statement "pcVar19 = dupstr("SSH server authentication");" (assignment_expression "pcVar19 = dupstr("SSH server authentication")" identifier = (call_expression "dupstr("SSH server authentication")" identifier (argument_list "("SSH server authentication")" ( (string_literal ""SSH server authentication"" " string_content ") )))) ;) (expression_statement "*(char **)(iVar20 + 4) = pcVar19;" (assignment_expression "*(char **)(iVar20 + 4) = pcVar19" (pointer_expression "*(char **)(iVar20 + 4)" * (cast_expression "(char **)(iVar20 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (expression_statement "ppVar18->name_reqd = 0;" (assignment_expression "ppVar18->name_reqd = 0" (field_expression "ppVar18->name_reqd" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }" else (compound_statement "{\n            pcVar19 = dupprintf("SSH server: %.*s",name_len,name);\n            *(char **)(iVar20 + 4) = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->name_reqd = 1;\n          }" { (expression_statement "pcVar19 = dupprintf("SSH server: %.*s",name_len,name);" (assignment_expression "pcVar19 = dupprintf("SSH server: %.*s",name_len,name)" identifier = (call_expression "dupprintf("SSH server: %.*s",name_len,name)" identifier (argument_list "("SSH server: %.*s",name_len,name)" ( (string_literal ""SSH server: %.*s"" " string_content ") , identifier , identifier )))) ;) (expression_statement "*(char **)(iVar20 + 4) = pcVar19;" (assignment_expression "*(char **)(iVar20 + 4) = pcVar19" (pointer_expression "*(char **)(iVar20 + 4)" * (cast_expression "(char **)(iVar20 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (expression_statement "ppVar18->name_reqd = 1;" (assignment_expression "ppVar18->name_reqd = 1" (field_expression "ppVar18->name_reqd" identifier -> field_identifier) = number_literal) ;) }))) (if_statement "if (piVar12[0x10] == 0 && name_len == 0) {\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }\n          else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }" if (parenthesized_expression "(piVar12[0x10] == 0 && name_len == 0)" ( (binary_expression "piVar12[0x10] == 0 && name_len == 0" (binary_expression "piVar12[0x10] == 0" (subscript_expression "piVar12[0x10]" identifier [ number_literal ]) == number_literal) && (binary_expression "name_len == 0" identifier == number_literal)) )) (compound_statement "{\n            if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }\n            ppVar18->instr_reqd = 0;\n          }" { (if_statement "if (inst_len != 0) {\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }" if (parenthesized_expression "(inst_len != 0)" ( (binary_expression "inst_len != 0" identifier != number_literal) )) (compound_statement "{\n              puVar26 = &DAT_0007148e;\n              goto LAB_0002fa3b;\n            }" { (expression_statement "puVar26 = &DAT_0007148e;" (assignment_expression "puVar26 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (goto_statement "goto LAB_0002fa3b;" goto statement_identifier ;) })) (expression_statement "ppVar18->instr_reqd = 0;" (assignment_expression "ppVar18->instr_reqd = 0" (field_expression "ppVar18->instr_reqd" identifier -> field_identifier) = number_literal) ;) }) (else_clause "else {\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }" else (compound_statement "{\n            puVar26 = &DAT_0007148e;\n            if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }\nLAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);\n            ppVar18->instruction = pcVar19;\n            ppVar18 = (prompts_t *)piVar12[0xf];\n            ppVar18->instr_reqd = 1;\n          }" { (expression_statement "puVar26 = &DAT_0007148e;" (assignment_expression "puVar26 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (if_statement "if (inst_len == 0) {\n              puVar26 = &DAT_0006f2ee;\n            }" if (parenthesized_expression "(inst_len == 0)" ( (binary_expression "inst_len == 0" identifier == number_literal) )) (compound_statement "{\n              puVar26 = &DAT_0006f2ee;\n            }" { (expression_statement "puVar26 = &DAT_0006f2ee;" (assignment_expression "puVar26 = &DAT_0006f2ee" identifier = (pointer_expression "&DAT_0006f2ee" & identifier)) ;) })) (labeled_statement "LAB_0002fa3b:\n            pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);" statement_identifier : (expression_statement "pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst);" (assignment_expression "pcVar19 = dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst)" identifier = (call_expression "dupprintf("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst)" identifier (argument_list "("Using keyboard-interactive authentication.%s%.*s",puVar26,inst_len,\n                                inst)" ( (string_literal ""Using keyboard-interactive authentication.%s%.*s"" " string_content ") , identifier , identifier , identifier )))) ;)) (expression_statement "ppVar18->instruction = pcVar19;" (assignment_expression "ppVar18->instruction = pcVar19" (field_expression "ppVar18->instruction" identifier -> field_identifier) = identifier) ;) (expression_statement "ppVar18 = (prompts_t *)piVar12[0xf];" (assignment_expression "ppVar18 = (prompts_t *)piVar12[0xf]" identifier = (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ]))) ;) (expression_statement "ppVar18->instr_reqd = 1;" (assignment_expression "ppVar18->instr_reqd = 1" (field_expression "ppVar18->instr_reqd" identifier -> field_identifier) = number_literal) ;) }))) (expression_statement "iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0);" (assignment_expression "iVar20 = get_userpass_input(ppVar18,(uchar *)0x0,0)" identifier = (call_expression "get_userpass_input(ppVar18,(uchar *)0x0,0)" identifier (argument_list "(ppVar18,(uchar *)0x0,0)" ( identifier , (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (goto_statement "goto LAB_0002f51a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f35a:\n        *piVar12 = 0x28ca;" statement_identifier : (expression_statement "*piVar12 = 0x28ca;" (assignment_expression "*piVar12 = 0x28ca" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) }))) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x2a03) {\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 == 0x2a03)" ( (binary_expression "iVar20 == 0x2a03" identifier == number_literal) )) (compound_statement "{\n      if (pktin == (Packet *)0x0) goto LAB_0002e0c6;\n      if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }\nLAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);\n      bomb_out(ssh,pcVar19);\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" { (if_statement "if (pktin == (Packet *)0x0) goto LAB_0002e0c6;" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002e0c6;" goto statement_identifier ;)) (if_statement "if (pktin->type - 0x5bU < 2) {\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }" if (parenthesized_expression "(pktin->type - 0x5bU < 2)" ( (binary_expression "pktin->type - 0x5bU < 2" (binary_expression "pktin->type - 0x5bU" (field_expression "pktin->type" identifier -> field_identifier) - number_literal) < number_literal) )) (compound_statement "{\n        uVar21 = ssh_pkt_getuint32(pktin);\n        psVar16 = ssh->mainchan;\n        if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar19 = "Server\'s response to main channel open cited wrong channel number";\n      }" { (expression_statement "uVar21 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar21 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "psVar16 = ssh->mainchan;" (assignment_expression "psVar16 = ssh->mainchan" identifier = (field_expression "ssh->mainchan" identifier -> field_identifier)) ;) (if_statement "if (uVar21 == psVar16->localid) {\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }" if (parenthesized_expression "(uVar21 == psVar16->localid)" ( (binary_expression "uVar21 == psVar16->localid" identifier == (field_expression "psVar16->localid" identifier -> field_identifier)) )) (compound_statement "{\n          if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }\n          uVar21 = ssh_pkt_getuint32(pktin);\n          psVar16->remoteid = uVar21;\n          psVar16 = ssh->mainchan;\n          psVar16->halfopen = 0;\n          psVar16->type = 0;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remwindow = uVar21;\n          psVar16 = ssh->mainchan;\n          uVar21 = ssh_pkt_getuint32(pktin);\n          (psVar16->v).v2.remmaxpkt = uVar21;\n          update_specials_menu(ssh->frontend);\n          logevent(ssh->frontend,"Opened main channel");\n          goto LAB_0002da71;\n        }" { (if_statement "if (pktin->type == 0x5c) {\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(pktin->type == 0x5c)" ( (binary_expression "pktin->type == 0x5c" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n            pcVar19 = ssh2_channel_open_failure_error_text(pktin);\n            pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);\n            bomb_out(ssh,pcVar35);\n            safefree(pcVar19);\n            *piVar12 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "pcVar19 = ssh2_channel_open_failure_error_text(pktin);" (assignment_expression "pcVar19 = ssh2_channel_open_failure_error_text(pktin)" identifier = (call_expression "ssh2_channel_open_failure_error_text(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19);" (assignment_expression "pcVar35 = dupprintf("Server refused to open main channel: %s",pcVar19)" identifier = (call_expression "dupprintf("Server refused to open main channel: %s",pcVar19)" identifier (argument_list "("Server refused to open main channel: %s",pcVar19)" ( (string_literal ""Server refused to open main channel: %s"" " string_content ") , identifier )))) ;) (expression_statement "bomb_out(ssh,pcVar35);" (call_expression "bomb_out(ssh,pcVar35)" identifier (argument_list "(ssh,pcVar35)" ( identifier , identifier ))) ;) (expression_statement "safefree(pcVar19);" (call_expression "safefree(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier ))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "uVar21 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar21 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "psVar16->remoteid = uVar21;" (assignment_expression "psVar16->remoteid = uVar21" (field_expression "psVar16->remoteid" identifier -> field_identifier) = identifier) ;) (expression_statement "psVar16 = ssh->mainchan;" (assignment_expression "psVar16 = ssh->mainchan" identifier = (field_expression "ssh->mainchan" identifier -> field_identifier)) ;) (expression_statement "psVar16->halfopen = 0;" (assignment_expression "psVar16->halfopen = 0" (field_expression "psVar16->halfopen" identifier -> field_identifier) = number_literal) ;) (expression_statement "psVar16->type = 0;" (assignment_expression "psVar16->type = 0" (field_expression "psVar16->type" identifier -> field_identifier) = number_literal) ;) (expression_statement "uVar21 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar21 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "(psVar16->v).v2.remwindow = uVar21;" (assignment_expression "(psVar16->v).v2.remwindow = uVar21" (field_expression "(psVar16->v).v2.remwindow" (field_expression "(psVar16->v).v2" (parenthesized_expression "(psVar16->v)" ( (field_expression "psVar16->v" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "psVar16 = ssh->mainchan;" (assignment_expression "psVar16 = ssh->mainchan" identifier = (field_expression "ssh->mainchan" identifier -> field_identifier)) ;) (expression_statement "uVar21 = ssh_pkt_getuint32(pktin);" (assignment_expression "uVar21 = ssh_pkt_getuint32(pktin)" identifier = (call_expression "ssh_pkt_getuint32(pktin)" identifier (argument_list "(pktin)" ( identifier )))) ;) (expression_statement "(psVar16->v).v2.remmaxpkt = uVar21;" (assignment_expression "(psVar16->v).v2.remmaxpkt = uVar21" (field_expression "(psVar16->v).v2.remmaxpkt" (field_expression "(psVar16->v).v2" (parenthesized_expression "(psVar16->v)" ( (field_expression "psVar16->v" identifier -> field_identifier) )) . field_identifier) . field_identifier) = identifier) ;) (expression_statement "update_specials_menu(ssh->frontend);" (call_expression "update_specials_menu(ssh->frontend)" identifier (argument_list "(ssh->frontend)" ( (field_expression "ssh->frontend" identifier -> field_identifier) ))) ;) (expression_statement "logevent(ssh->frontend,"Opened main channel");" (call_expression "logevent(ssh->frontend,"Opened main channel")" identifier (argument_list "(ssh->frontend,"Opened main channel")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Opened main channel"" " string_content ") ))) ;) (goto_statement "goto LAB_0002da71;" goto statement_identifier ;) })) (expression_statement "pcVar19 = "Server\'s response to main channel open cited wrong channel number";" (assignment_expression "pcVar19 = "Server\'s response to main channel open cited wrong channel number"" identifier = (string_literal ""Server\'s response to main channel open cited wrong channel number"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }" else (compound_statement "{\n        pcVar19 = "Server sent strange packet %d in response to main channel open request";\n      }" { (expression_statement "pcVar19 = "Server sent strange packet %d in response to main channel open request";" (assignment_expression "pcVar19 = "Server sent strange packet %d in response to main channel open request"" identifier = (string_literal ""Server sent strange packet %d in response to main channel open request"" " string_content ")) ;) }))) (labeled_statement "LAB_0002dba9:\n      pcVar19 = dupprintf(pcVar19);" statement_identifier : (expression_statement "pcVar19 = dupprintf(pcVar19);" (assignment_expression "pcVar19 = dupprintf(pcVar19)" identifier = (call_expression "dupprintf(pcVar19)" identifier (argument_list "(pcVar19)" ( identifier )))) ;)) (expression_statement "bomb_out(ssh,pcVar19);" (call_expression "bomb_out(ssh,pcVar19)" identifier (argument_list "(ssh,pcVar19)" ( identifier , identifier ))) ;) (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 < 0x2a04) {\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar20 < 0x2a04)" ( (binary_expression "iVar20 < 0x2a04" identifier < number_literal) )) (compound_statement "{\n      if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }\n      if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }\nLAB_0002d8a4:\n      *piVar12 = 0;\n      goto LAB_0002d320;\n    }" { (if_statement "if (iVar20 == 0x2956) {\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar20 == 0x2956)" ( (binary_expression "iVar20 == 0x2956" identifier == number_literal) )) (compound_statement "{\n        if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }\nLAB_0002e5f0:\n        *piVar12 = 0x2956;\n        goto LAB_0002d320;\n      }" { (if_statement "if (pktin == (Packet *)0x0) {\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }" if (parenthesized_expression "(pktin == (Packet *)0x0)" ( (binary_expression "pktin == (Packet *)0x0" identifier == (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);\n          ssh->send_ok = 0;\n          goto LAB_0002e42a;\n        }" { (expression_statement "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen);" (assignment_expression "iVar20 = get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier = (call_expression "get_userpass_input((prompts_t *)piVar12[0xf],in,inlen)" identifier (argument_list "((prompts_t *)piVar12[0xf],in,inlen)" ( (cast_expression "(prompts_t *)piVar12[0xf]" ( (type_descriptor "prompts_t *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[0xf]" identifier [ number_literal ])) , identifier , identifier )))) ;) (expression_statement "ssh->send_ok = 0;" (assignment_expression "ssh->send_ok = 0" (field_expression "ssh->send_ok" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002e42a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e5f0:\n        *piVar12 = 0x2956;" statement_identifier : (expression_statement "*piVar12 = 0x2956;" (assignment_expression "*piVar12 = 0x2956" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 == 0x2999) {\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }" if (parenthesized_expression "(iVar20 == 0x2999)" ( (binary_expression "iVar20 == 0x2999" identifier == number_literal) )) (compound_statement "{\n        if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }\n        goto LAB_0002e515;\n      }" { (if_statement "if (pktin != (Packet *)0x0) {\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar20 = pktin->type;\n          pcVar19 = "Server rejected new password";\n          goto joined_r0x0002e302;\n        }" { (expression_statement "iVar20 = pktin->type;" (assignment_expression "iVar20 = pktin->type" identifier = (field_expression "pktin->type" identifier -> field_identifier)) ;) (expression_statement "pcVar19 = "Server rejected new password";" (assignment_expression "pcVar19 = "Server rejected new password"" identifier = (string_literal ""Server rejected new password"" " string_content ")) ;) (goto_statement "goto joined_r0x0002e302;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e515;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d8a4:\n      *piVar12 = 0;" statement_identifier : (expression_statement "*piVar12 = 0;" (assignment_expression "*piVar12 = 0" (pointer_expression "*piVar12" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar20 != 0x2a90) {\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }" if (parenthesized_expression "(iVar20 != 0x2a90)" ( (binary_expression "iVar20 != 0x2a90" identifier != number_literal) )) (compound_statement "{\n      if (iVar20 != 0x2abd) goto LAB_0002d8a4;\n      if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }\n      if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }\n      goto LAB_0002db95;\n    }" { (if_statement "if (iVar20 != 0x2abd) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar20 != 0x2abd)" ( (binary_expression "iVar20 != 0x2abd" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (pktin != (Packet *)0x0) {\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        pcVar19 = "Strange packet received: type %d";\n        goto LAB_0002dba9;\n      }" { (expression_statement "pcVar19 = "Strange packet received: type %d";" (assignment_expression "pcVar19 = "Strange packet received: type %d"" identifier = (string_literal ""Strange packet received: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (ssh->mainchan != (ssh_channel *)0x0) {\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }" if (parenthesized_expression "(ssh->mainchan != (ssh_channel *)0x0)" ( (binary_expression "ssh->mainchan != (ssh_channel *)0x0" (field_expression "ssh->mainchan" identifier -> field_identifier) != (cast_expression "(ssh_channel *)0x0" ( (type_descriptor "ssh_channel *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);\n      }" { (expression_statement "ssh_send_channel_data(ssh->mainchan,(char *)in,inlen);" (call_expression "ssh_send_channel_data(ssh->mainchan,(char *)in,inlen)" identifier (argument_list "(ssh->mainchan,(char *)in,inlen)" ( (field_expression "ssh->mainchan" identifier -> field_identifier) , (cast_expression "(char *)in" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) })) (goto_statement "goto LAB_0002db95;" goto statement_identifier ;) })) (if_statement "if (pktin != (Packet *)0x0) {\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }" if (parenthesized_expression "(pktin != (Packet *)0x0)" ( (binary_expression "pktin != (Packet *)0x0" identifier != (cast_expression "(Packet *)0x0" ( (type_descriptor "Packet *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }\n      goto LAB_0002dba9;\n    }" { (if_statement "if (pktin->type == 99) {\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }" if (parenthesized_expression "(pktin->type == 99)" ( (binary_expression "pktin->type == 99" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        logevent(ssh->frontend,"Started a shell/command");\n        goto LAB_0002db48;\n      }" { (expression_statement "logevent(ssh->frontend,"Started a shell/command");" (call_expression "logevent(ssh->frontend,"Started a shell/command")" identifier (argument_list "(ssh->frontend,"Started a shell/command")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Started a shell/command"" " string_content ") ))) ;) (goto_statement "goto LAB_0002db48;" goto statement_identifier ;) })) (if_statement "if (pktin->type == 100) {\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }" if (parenthesized_expression "(pktin->type == 100)" ( (binary_expression "pktin->type == 100" (field_expression "pktin->type" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n        if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }\n        pcVar19 = "Server refused to start a shell/command";\n      }" { (if_statement "if ((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))\n        {\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }" if (parenthesized_expression "((ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'))" ( (binary_expression "(ssh->fallback_cmd == 0) && (pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0')" (parenthesized_expression "(ssh->fallback_cmd == 0)" ( (binary_expression "ssh->fallback_cmd == 0" (field_expression "ssh->fallback_cmd" identifier -> field_identifier) == number_literal) )) && (parenthesized_expression "(pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0')" ( (comma_expression "pcVar19 = conf_get_str(ssh->conf,0x15), *pcVar19 != '\0'" (assignment_expression "pcVar19 = conf_get_str(ssh->conf,0x15)" identifier = (call_expression "conf_get_str(ssh->conf,0x15)" identifier (argument_list "(ssh->conf,0x15)" ( (field_expression "ssh->conf" identifier -> field_identifier) , number_literal )))) , (binary_expression "*pcVar19 != '\0'" (pointer_expression "*pcVar19" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n          logevent(ssh->frontend,"Primary command failed; attempting fallback");\n          ssh->fallback_cmd = 1;\n          goto LAB_0002feab;\n        }" { (expression_statement "logevent(ssh->frontend,"Primary command failed; attempting fallback");" (call_expression "logevent(ssh->frontend,"Primary command failed; attempting fallback")" identifier (argument_list "(ssh->frontend,"Primary command failed; attempting fallback")" ( (field_expression "ssh->frontend" identifier -> field_identifier) , (string_literal ""Primary command failed; attempting fallback"" " string_content ") ))) ;) (expression_statement "ssh->fallback_cmd = 1;" (assignment_expression "ssh->fallback_cmd = 1" (field_expression "ssh->fallback_cmd" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0002feab;" goto statement_identifier ;) })) (expression_statement "pcVar19 = "Server refused to start a shell/command";" (assignment_expression "pcVar19 = "Server refused to start a shell/command"" identifier = (string_literal ""Server refused to start a shell/command"" " string_content ")) ;) }) (else_clause "else {\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }" else (compound_statement "{\n        pcVar19 = "Unexpected response to shell/command request: packet type %d";\n      }" { (expression_statement "pcVar19 = "Unexpected response to shell/command request: packet type %d";" (assignment_expression "pcVar19 = "Unexpected response to shell/command request: packet type %d"" identifier = (string_literal ""Unexpected response to shell/command request: packet type %d"" " string_content ")) ;) }))) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) }))) (expression_statement "*piVar12 = 0x2a90;" (assignment_expression "*piVar12 = 0x2a90" (pointer_expression "*piVar12" * identifier) = number_literal) ;) (labeled_statement "LAB_0002d320:\n  if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar2 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar2 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar2 == *(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    return;\n  }" { (return_statement "return;" return ;) }))) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}\n\n" (function_definition "void __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)" identifier (parameter_list "(int param_1,undefined4 param_2,int param_3,int *param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "code *pcVar2;" type_identifier (pointer_declarator "*pcVar2" * identifier) ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined1 *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined4 uVar11;" type_identifier identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined1 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "void *pvVar14;" primitive_type (pointer_declarator "*pvVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined4 extraout_ECX;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_00;" type_identifier identifier ;) (declaration "undefined4 extraout_ECX_01;" type_identifier identifier ;) (declaration "uint *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined4 extraout_EDX;" type_identifier identifier ;) (declaration "uint *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "uint *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar23;" primitive_type identifier ;) (declaration "undefined8 uVar24;" type_identifier identifier ;) (declaration "int *local_64;" primitive_type (pointer_declarator "*local_64" * identifier) ;) (declaration "char **local_60;" primitive_type (pointer_declarator "**local_60" * (pointer_declarator "*local_60" * identifier)) ;) (declaration "int local_54;" primitive_type identifier ;) (declaration "undefined4 local_48;" type_identifier identifier ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "int local_34;" primitive_type identifier ;) (declaration "char *local_30;" primitive_type (pointer_declarator "*local_30" * identifier) ;) (declaration "char *local_2c [2];" primitive_type (pointer_declarator "*local_2c [2]" * (array_declarator "local_2c [2]" identifier [ number_literal ])) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "uStack_14 = 0x2d23b;" (assignment_expression "uStack_14 = 0x2d23b" identifier = number_literal) ;) (expression_statement "piVar8 = *(int **)(param_1 + 0x1d0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x1d0)" identifier = (pointer_expression "*(int **)(param_1 + 0x1d0)" * (cast_expression "(int **)(param_1 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1d0)" ( (binary_expression "param_1 + 0x1d0" 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) ))))) ;) (if_statement "if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(piVar8 == (int *)0x0)" ( (binary_expression "piVar8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" { (expression_statement "piVar8 = (int *)FUN_0001c990(1,0xe8);" (assignment_expression "piVar8 = (int *)FUN_0001c990(1,0xe8)" identifier = (cast_expression "(int *)FUN_0001c990(1,0xe8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(1,0xe8)" identifier (argument_list "(1,0xe8)" ( number_literal , number_literal ))))) ;) (expression_statement "*(int **)(param_1 + 0x1d0) = piVar8;" (assignment_expression "*(int **)(param_1 + 0x1d0) = piVar8" (pointer_expression "*(int **)(param_1 + 0x1d0)" * (cast_expression "(int **)(param_1 + 0x1d0)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x1d0)" ( (binary_expression "param_1 + 0x1d0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (labeled_statement "LAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);" statement_identifier : (expression_statement "iVar7 = *(int *)(param_1 + 0xec);" (assignment_expression "iVar7 = *(int *)(param_1 + 0xec)" identifier = (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) ))))) ;)) (expression_statement "*(code **)(param_1 + 0x288) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x288) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x288)" * (cast_expression "(code **)(param_1 + 0x288)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x288)" ( (binary_expression "param_1 + 0x288" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x338) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x338) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x338)" * (cast_expression "(code **)(param_1 + 0x338)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x338)" ( (binary_expression "param_1 + 0x338" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x33c) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x33c) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x33c)" * (cast_expression "(code **)(param_1 + 0x33c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x33c)" ( (binary_expression "param_1 + 0x33c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x340) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x340) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x340)" * (cast_expression "(code **)(param_1 + 0x340)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x340)" ( (binary_expression "param_1 + 0x340" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x344)" * (cast_expression "(code **)(param_1 + 0x344)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x360) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x360) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x360)" * (cast_expression "(code **)(param_1 + 0x360)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x360)" ( (binary_expression "param_1 + 0x360" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x364) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x364) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x364)" * (cast_expression "(code **)(param_1 + 0x364)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x364)" ( (binary_expression "param_1 + 0x364" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b0)" * (cast_expression "(code **)(param_1 + 0x3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b0)" ( (binary_expression "param_1 + 0x3b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b4)" * (cast_expression "(code **)(param_1 + 0x3b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b4)" ( (binary_expression "param_1 + 0x3b4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b8)" * (cast_expression "(code **)(param_1 + 0x3b8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b8)" ( (binary_expression "param_1 + 0x3b8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3d8)" * (cast_expression "(code **)(param_1 + 0x3d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3d8)" ( (binary_expression "param_1 + 0x3d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3dc)" * (cast_expression "(code **)(param_1 + 0x3dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3dc)" ( (binary_expression "param_1 + 0x3dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e0)" * (cast_expression "(code **)(param_1 + 0x3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e0)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e4)" * (cast_expression "(code **)(param_1 + 0x3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e4)" ( (binary_expression "param_1 + 0x3e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 1000) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 1000)" * (cast_expression "(code **)(param_1 + 1000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1000)" ( (binary_expression "param_1 + 1000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3ec)" * (cast_expression "(code **)(param_1 + 0x3ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3ec)" ( (binary_expression "param_1 + 0x3ec" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f0)" * (cast_expression "(code **)(param_1 + 0x3f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f4)" * (cast_expression "(code **)(param_1 + 0x3f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f4)" ( (binary_expression "param_1 + 0x3f4" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar8[2] = 0;" (assignment_expression "piVar8[2] = 0" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xe] = 0;" (assignment_expression "piVar8[0xe] = 0" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xb] = 0;" (assignment_expression "piVar8[0xb] = 0" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x23)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002fadd:\n        *piVar8 = 0x246f;" statement_identifier : (expression_statement "*piVar8 = 0x246f;" (assignment_expression "*piVar8 = 0x246f" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar8[2] == 0)" ( (binary_expression "piVar8[2] == 0" (subscript_expression "piVar8[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002dc2e:\n        *piVar8 = 0x247a;" statement_identifier : (expression_statement "*piVar8 = 0x247a;" (assignment_expression "*piVar8 = 0x247a" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) }) (else_clause "else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" else (compound_statement "{\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" { (labeled_statement "LAB_0002d973:\n      piVar8[0xd] = 1;" statement_identifier : (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;)) }))) (labeled_statement "LAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);" statement_identifier : (expression_statement "FUN_0001c780(param_1 + 0x178);" (call_expression "FUN_0001c780(param_1 + 0x178)" identifier (argument_list "(param_1 + 0x178)" ( (binary_expression "param_1 + 0x178" identifier + number_literal) ))) ;)) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0002bdb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0002bdb0" (pointer_expression "*(code **)(param_1 + 0x344)" * (cast_expression "(code **)(param_1 + 0x344)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = identifier) ;) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }" if (parenthesized_expression "(piVar8[0xd] == 0)" ( (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }" { (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_000631b0(iVar7);" (assignment_expression "iVar7 = FUN_000631b0(iVar7)" identifier = (call_expression "FUN_000631b0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" { (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);" (call_expression "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11)" identifier (argument_list "(param_1,"Reading key file \"%.150s\"",uVar11)" ( identifier , (string_literal ""Reading key file \"%.150s\""" " string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (expression_statement "iVar7 = FUN_00052e80(piVar8[0x2f]);" (assignment_expression "iVar7 = FUN_00052e80(piVar8[0x2f])" identifier = (call_expression "FUN_00052e80(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" if (parenthesized_expression "((iVar7 == 9) || (iVar7 == 3))" ( (binary_expression "(iVar7 == 9) || (iVar7 == 3)" (parenthesized_expression "(iVar7 == 9)" ( (binary_expression "iVar7 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) ))) )) (compound_statement "{\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" { (expression_statement "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier = (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x18" identifier + number_literal) , (binary_expression "piVar8 + 0x15" identifier + number_literal) , (binary_expression "piVar8 + 0x19" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar8[0x14] = iVar5;" (assignment_expression "piVar8[0x14] = iVar5" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" { (expression_statement "piVar8[0x16] = (uint)(iVar7 == 3);" (assignment_expression "piVar8[0x16] = (uint)(iVar7 == 3)" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) = (call_expression "(uint)(iVar7 == 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )))) ;) (if_statement "if (iVar7 != 3) goto LAB_0002fb9e;" if (parenthesized_expression "(iVar7 != 3)" ( (binary_expression "iVar7 != 3" identifier != number_literal) )) (goto_statement "goto LAB_0002fb9e;" goto statement_identifier ;)) (goto_statement "goto LAB_0002fbb1;" goto statement_identifier ;) })) (labeled_statement "LAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" (call_expression "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0])" identifier (argument_list "(param_1,"Unable to load key (%s)",local_2c[0])" ( identifier , (string_literal ""Unable to load key (%s)"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;)) (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" identifier = (subscript_expression "local_2c[0]" identifier [ number_literal ])) ;) (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" identifier = (cast_expression "(char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" identifier (argument_list "("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" ( (string_literal ""Unable to load key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) }) (else_clause "else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" else (if_statement "if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" if (parenthesized_expression "(iVar7 == 10)" ( (binary_expression "iVar7 == 10" identifier == number_literal) )) (compound_statement "{\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }" { (expression_statement "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier = (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" identifier (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x18" identifier + number_literal) , (binary_expression "piVar8 + 0x15" identifier + number_literal) , (binary_expression "piVar8 + 0x19" identifier + number_literal) , identifier )))) ;) (expression_statement "piVar8[0x14] = iVar7;" (assignment_expression "piVar8[0x14] = iVar7" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_00030219;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00030219;" goto statement_identifier ;)) (expression_statement "piVar8[0x16] = 0;" (assignment_expression "piVar8[0x16] = 0" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Key file contains public key only",uVar11);" (call_expression "FUN_00026c00(param_1,"Key file contains public key only",uVar11)" identifier (argument_list "(param_1,"Key file contains public key only",uVar11)" ( identifier , (string_literal ""Key file contains public key only"" " string_content ") , identifier ))) ;)) (labeled_statement "LAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);" statement_identifier : (expression_statement "iVar7 = FUN_00051ea0(piVar8[0x2f],0);" (assignment_expression "iVar7 = FUN_00051ea0(piVar8[0x2f],0)" identifier = (call_expression "FUN_00051ea0(piVar8[0x2f],0)" identifier (argument_list "(piVar8[0x2f],0)" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) , number_literal )))) ;)) (expression_statement "piVar8[0x17] = iVar7;" (assignment_expression "piVar8[0x17] = iVar7" (subscript_expression "piVar8[0x17]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" else (compound_statement "{\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" { (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" identifier = (call_expression "FUN_00052ed0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);" (call_expression "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11)" identifier (argument_list "(param_1,"Unable to use this key file (%s)",uVar11)" ( identifier , (string_literal ""Unable to use this key file (%s)"" " string_content ") , identifier ))) ;) (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" identifier = (call_expression "FUN_00052ed0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "uVar17 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar17 = FUN_00063170(piVar8[0x2f])" identifier = (call_expression "FUN_00063170(piVar8[0x2f])" identifier (argument_list "(piVar8[0x2f])" ( (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) )))) ;) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" identifier = (cast_expression "(char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" identifier (argument_list "("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" ( (string_literal ""Unable to use key file \"%.150s\" (%s)\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) = number_literal) ;) }))))) })) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1f] = 0;" (assignment_expression "piVar8[0x1f] = 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" if (parenthesized_expression "((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00061870(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00061870(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00061870()" identifier = (call_expression "FUN_00061870()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Pageant is running. Requesting keys."" " string_content ") ))) ;) (expression_statement "piVar8[0x1a] = 0x1000000;" (assignment_expression "piVar8[0x1a] = 0x1000000" (subscript_expression "piVar8[0x1a]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8 + 0x1b) = 0xb;" (assignment_expression "*(undefined1 *)(piVar8 + 0x1b) = 0xb" (pointer_expression "*(undefined1 *)(piVar8 + 0x1b)" * (cast_expression "(undefined1 *)(piVar8 + 0x1b)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8 + 0x1b)" ( (binary_expression "piVar8 + 0x1b" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" identifier = (call_expression "FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" identifier (argument_list "(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" ( (binary_expression "piVar8 + 0x1a" identifier + number_literal) , number_literal , identifier , (binary_expression "piVar8 + 0x1e" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" * (cast_expression "(int *)(param_1 + 0x6d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d0)" ( (binary_expression "param_1 + 0x6d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" { (labeled_statement "LAB_0002eb58:\n          *piVar8 = 0x24d9;" statement_identifier : (expression_statement "*piVar8 = 0x24d9;" (assignment_expression "*piVar8 = 0x24d9" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d78a:\n        pcVar16 = local_2c[0];" statement_identifier : (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" identifier = (subscript_expression "local_2c[0]" identifier [ number_literal ])) ;)) (expression_statement "piVar8[0x1c] = (int)local_2c[0];" (assignment_expression "piVar8[0x1c] = (int)local_2c[0]" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) = (cast_expression "(int)local_2c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_2c[0]" identifier [ number_literal ]))) ;) (if_statement "if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" if (parenthesized_expression "(((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f'))" ( (binary_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')" (parenthesized_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5))" ( (binary_expression "(local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)" (parenthesized_expression "(local_2c[0] == (char *)0x0)" ( (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(piVar8[0x1e] < 5)" ( (binary_expression "piVar8[0x1e] < 5" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) < number_literal) ))) )) || (parenthesized_expression "(local_2c[0][4] != '\f')" ( (binary_expression "local_2c[0][4] != '\f'" (subscript_expression "local_2c[0][4]" (subscript_expression "local_2c[0]" identifier [ number_literal ]) [ number_literal ]) != (char_literal "'\f'" ' escape_sequence ')) ))) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Failed to get reply from Pageant"" " string_content ") ))) ;) }) (else_clause "else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" else (compound_statement "{\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" { (expression_statement "uVar12 = *(uint *)(local_2c[0] + 5);" (assignment_expression "uVar12 = *(uint *)(local_2c[0] + 5)" identifier = (pointer_expression "*(uint *)(local_2c[0] + 5)" * (cast_expression "(uint *)(local_2c[0] + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_2c[0] + 5)" ( (binary_expression "local_2c[0] + 5" (subscript_expression "local_2c[0]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x21] = iVar7;" (assignment_expression "piVar8[0x21] = iVar7" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }" { (expression_statement "pcVar16 = "Pageant response contained a negative key count %d";" (assignment_expression "pcVar16 = "Pageant response contained a negative key count %d"" identifier = (string_literal ""Pageant response contained a negative key count %d"" " string_content ")) ;) }) (else_clause "else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" else (compound_statement "{\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" { (expression_statement "puVar22 = (uint *)(pcVar16 + 9);" (assignment_expression "puVar22 = (uint *)(pcVar16 + 9)" identifier = (cast_expression "(uint *)(pcVar16 + 9)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 9)" ( (binary_expression "pcVar16 + 9" identifier + number_literal) )))) ;) (expression_statement "iVar5 = piVar8[0x1e] + -9;" (assignment_expression "iVar5 = piVar8[0x1e] + -9" identifier = (binary_expression "piVar8[0x1e] + -9" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "puVar19 = puVar22;" (assignment_expression "puVar19 = puVar22" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" { (labeled_statement "LAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" statement_identifier : (expression_statement "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" (call_expression "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" identifier (argument_list "(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" ( identifier , (string_literal ""Pageant has %d SSH-2 keys"" " string_content ") , identifier , identifier ))) ;)) (if_statement "if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" if (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" { (expression_statement "uVar11 = extraout_ECX_00;" (assignment_expression "uVar11 = extraout_ECX_00" identifier = identifier) ;) (if_statement "if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" if (parenthesized_expression "(0 < piVar8[0x21])" ( (binary_expression "0 < piVar8[0x21]" number_literal < (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) )) (compound_statement "{\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);" do (compound_statement "{\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  }" { (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x25] = sVar4;" (assignment_expression "piVar8[0x25] = sVar4" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" if (parenthesized_expression "((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0))" ( (binary_expression "(sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" (parenthesized_expression "(sVar4 == piVar8[0x15])" ( (binary_expression "sVar4 == piVar8[0x15]" identifier == (subscript_expression "piVar8[0x15]" identifier [ number_literal ])) )) && (parenthesized_expression "(iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" ( (comma_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0" (assignment_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" identifier = (call_expression "memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" identifier (argument_list "(puVar22 + 1,(void *)piVar8[0x14],sVar4)" ( (binary_expression "puVar22 + 1" identifier + number_literal) , (cast_expression "(void *)piVar8[0x14]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x14]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" { (expression_statement "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);" (call_expression "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0)" identifier (argument_list "(param_1,"Pageant key #%d matches configured key file",iVar7,0)" ( identifier , (string_literal ""Pageant key #%d matches configured key file"" " string_content ") , identifier , number_literal ))) ;) (expression_statement "piVar8[0x20] = iVar7;" (assignment_expression "piVar8[0x20] = iVar7" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x1f] = (int)puVar22;" (assignment_expression "piVar8[0x1f] = (int)puVar22" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) = (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "puVar22 = (uint *)((int)puVar22 + sVar4 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + sVar4 + 4)" identifier = (cast_expression "(uint *)((int)puVar22 + sVar4 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + sVar4 + 4)" ( (binary_expression "(int)puVar22 + sVar4 + 4" (binary_expression "(int)puVar22 + sVar4" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" identifier = (pointer_expression "*puVar22" * identifier)) ;) (expression_statement "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "puVar22 = (uint *)((int)puVar22 + iVar5 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + iVar5 + 4)" identifier = (cast_expression "(uint *)((int)puVar22 + iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar22 + iVar5 + 4)" ( (binary_expression "(int)puVar22 + iVar5 + 4" (binary_expression "(int)puVar22 + iVar5" (cast_expression "(int)puVar22" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar11 = extraout_ECX_01;" (assignment_expression "uVar11 = extraout_ECX_01" identifier = identifier) ;) }) while (parenthesized_expression "(iVar7 < piVar8[0x21])" ( (binary_expression "iVar7 < piVar8[0x21]" identifier < (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) )) ;) })) (if_statement "if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Configured key file not in Pageant"" " string_content ") , identifier , identifier ))) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) })) })) (goto_statement "goto LAB_0002d7b9;" goto statement_identifier ;) })) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "puVar20 = puVar22;" (assignment_expression "puVar20 = puVar22" identifier = identifier) ;) (if_statement "if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" if (parenthesized_expression "(3 < iVar5)" ( (binary_expression "3 < iVar5" number_literal < identifier) )) (compound_statement "{\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" { (while_statement "while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" { (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (if_statement "if (iVar5 - 4U < uVar12) break;" if (parenthesized_expression "(iVar5 - 4U < uVar12)" ( (binary_expression "iVar5 - 4U < uVar12" (binary_expression "iVar5 - 4U" identifier - number_literal) < identifier) )) (break_statement "break;" break ;)) (expression_statement "puVar20 = (uint *)((int)puVar20 + uVar12 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + uVar12 + 4)" identifier = (cast_expression "(uint *)((int)puVar20 + uVar12 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + uVar12 + 4)" ( (binary_expression "(int)puVar20 + uVar12 + 4" (binary_expression "(int)puVar20 + uVar12" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *puVar20;" (assignment_expression "uVar3 = *puVar20" identifier = (pointer_expression "*puVar20" * identifier)) ;) (expression_statement "iVar5 = ((iVar5 - 4U) - uVar12) + -4;" (assignment_expression "iVar5 = ((iVar5 - 4U) - uVar12) + -4" identifier = (binary_expression "((iVar5 - 4U) - uVar12) + -4" (parenthesized_expression "((iVar5 - 4U) - uVar12)" ( (binary_expression "(iVar5 - 4U) - uVar12" (parenthesized_expression "(iVar5 - 4U)" ( (binary_expression "iVar5 - 4U" identifier - number_literal) )) - identifier) )) + number_literal)) ;) (expression_statement "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);" (assignment_expression "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" identifier (argument_list "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" ( (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" ( (binary_expression "uVar3 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" ( (binary_expression "uVar3 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar3 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);" (assignment_expression "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20)" identifier = (cast_expression "(uint *)((ulonglong)uVar24 >> 0x20)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar24 >> 0x20)" ( (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "iVar18 = (int)uVar24;" (assignment_expression "iVar18 = (int)uVar24" identifier = (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((iVar18 < 0) || (iVar5 < iVar18)) break;" if (parenthesized_expression "((iVar18 < 0) || (iVar5 < iVar18))" ( (binary_expression "(iVar18 < 0) || (iVar5 < iVar18)" (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) || (parenthesized_expression "(iVar5 < iVar18)" ( (binary_expression "iVar5 < iVar18" identifier < identifier) ))) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = iVar5 - iVar18;" (assignment_expression "iVar5 = iVar5 - iVar18" identifier = (binary_expression "iVar5 - iVar18" identifier - identifier)) ;) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "iVar7 = piVar8[0x21];" (assignment_expression "iVar7 = piVar8[0x21]" identifier = (subscript_expression "piVar8[0x21]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 <= iVar6) goto LAB_00030479;" if (parenthesized_expression "(iVar7 <= iVar6)" ( (binary_expression "iVar7 <= iVar6" identifier <= identifier) )) (goto_statement "goto LAB_00030479;" goto statement_identifier ;)) (expression_statement "puVar20 = (uint *)((int)puVar20 + iVar18 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + iVar18 + 4)" identifier = (cast_expression "(uint *)((int)puVar20 + iVar18 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar20 + iVar18 + 4)" ( (binary_expression "(int)puVar20 + iVar18 + 4" (binary_expression "(int)puVar20 + iVar18" (cast_expression "(int)puVar20" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) )))) ;) (if_statement "if (iVar5 < 4) break;" if (parenthesized_expression "(iVar5 < 4)" ( (binary_expression "iVar5 < 4" identifier < number_literal) )) (break_statement "break;" break ;)) })) })) (expression_statement "pcVar16 = "Pageant response was truncated";" (assignment_expression "pcVar16 = "Pageant response was truncated"" identifier = (string_literal ""Pageant response was truncated"" " string_content ")) ;) }))) (expression_statement "FUN_00026c00(param_1,pcVar16);" (call_expression "FUN_00026c00(param_1,pcVar16)" identifier (argument_list "(param_1,pcVar16)" ( identifier , identifier ))) ;) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) = number_literal) ;) }))) })) (labeled_statement "LAB_0002d7b9:\n      piVar8[0x13] = 0;" statement_identifier : (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;)) (if_statement "if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(piVar8[0xd] == 0)" ( (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" statement_identifier : (expression_statement "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" identifier = (call_expression "FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) )))) ;)) (expression_statement "*(int *)(param_1 + 0x250) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x250) = iVar7" (pointer_expression "*(int *)(param_1 + 0x250)" * (cast_expression "(int *)(param_1 + 0x250)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }" { (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH login name");" (assignment_expression "uVar11 = FUN_0001caa0("SSH login name")" identifier = (call_expression "FUN_0001caa0("SSH login name")" identifier (argument_list "("SSH login name")" ( (string_literal ""SSH login name"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001caa0("login as: ");" (assignment_expression "uVar11 = FUN_0001caa0("login as: ")" identifier = (call_expression "FUN_0001caa0("login as: ")" identifier (argument_list "("login as: ")" ( (string_literal ""login as: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,1);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,1)" identifier (argument_list "(piVar8[0xf],uVar11,1)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" statement_identifier : (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e8c8;" goto statement_identifier ;) }))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00034b00(0,1);" (call_expression "FUN_00034b00(0,1)" identifier (argument_list "(0,1)" ( number_literal , number_literal ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" * (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x250) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x250) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x250)" * (cast_expression "(undefined4 *)(param_1 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) }) (else_clause "else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" else (if_statement "if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" ( (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" { (expression_statement "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" identifier = (cast_expression "(char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001d000("Using username \"%s\".\r\n",iVar7)" identifier (argument_list "("Using username \"%s\".\r\n",iVar7)" ( (string_literal ""Using username \"%s\".\r\n"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier ))))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) })))) (labeled_statement "LAB_0002d7f9:\n        piVar8[0x13] = 1;" statement_identifier : (expression_statement "piVar8[0x13] = 1;" (assignment_expression "piVar8[0x13] = 1" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;)) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[8] = 0;" (assignment_expression "piVar8[8] = 0" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xc] = 0;" (assignment_expression "piVar8[0xc] = 0" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[9] = 0;" (assignment_expression "piVar8[9] = 0" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" if (parenthesized_expression "(piVar8[0x1c] != 0)" ( (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" { (if_statement "if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }" { (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x1d] = piVar8[0x1c] + 9;" (assignment_expression "piVar8[0x1d] = piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) + number_literal)) ;) }) (else_clause "else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" else (compound_statement "{\n            piVar8[0x1d] = piVar8[0x1f];\n          }" { (expression_statement "piVar8[0x1d] = piVar8[0x1f];" (assignment_expression "piVar8[0x1d] = piVar8[0x1f]" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (subscript_expression "piVar8[0x1f]" identifier [ number_literal ])) ;) }))) })) (labeled_statement "LAB_0002d310:\n        *piVar8 = 0x25a0;" statement_identifier : (expression_statement "*piVar8 = 0x25a0;" (assignment_expression "*piVar8 = 0x25a0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n      piVar8[0x13] = 0;\n    }" else (compound_statement "{\n      piVar8[0x13] = 0;\n    }" { (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) = number_literal) ;) }))) (labeled_statement "LAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x344) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x344) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x344)" * (cast_expression "(undefined4 *)(param_1 + 0x344)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x344)" ( (binary_expression "param_1 + 0x344" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" if (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" { (expression_statement "FUN_0001d220(piVar8[0x18]);" (call_expression "FUN_0001d220(piVar8[0x18])" identifier (argument_list "(piVar8[0x18])" ( (subscript_expression "piVar8[0x18]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(piVar8[0x14]);" (call_expression "FUN_0001d220(piVar8[0x14])" identifier (argument_list "(piVar8[0x14])" ( (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(piVar8[0x19]);" (call_expression "FUN_0001d220(piVar8[0x19])" identifier (argument_list "(piVar8[0x19])" ( (subscript_expression "piVar8[0x19]" identifier [ number_literal ]) ))) ;) })) (if_statement "if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }" if (parenthesized_expression "(piVar8[0x1c] != 0)" ( (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_0001d220(piVar8[0x1c]);\n    }" { (expression_statement "FUN_0001d220(piVar8[0x1c]);" (call_expression "FUN_0001d220(piVar8[0x1c])" identifier (argument_list "(piVar8[0x1c])" ( (subscript_expression "piVar8[0x1c]" identifier [ number_literal ]) ))) ;) })) (if_statement "if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }" if (parenthesized_expression "((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0))" ( (binary_expression "(piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)" (parenthesized_expression "(piVar8[0xe] != 0)" ( (binary_expression "piVar8[0xe] != 0" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 0xec) == 0)" ( (binary_expression "*(int *)(param_1 + 0xec) == 0" (pointer_expression "*(int *)(param_1 + 0xec)" * (cast_expression "(int *)(param_1 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xec)" ( (binary_expression "param_1 + 0xec" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n      FUN_000306b0(0);\n    }" { (expression_statement "FUN_000306b0(0);" (call_expression "FUN_000306b0(0)" identifier (argument_list "(0)" ( number_literal ))) ;) })) (expression_statement "uVar11 = FUN_000612a0(FUN_00026aa0);" (assignment_expression "uVar11 = FUN_000612a0(FUN_00026aa0)" identifier = (call_expression "FUN_000612a0(FUN_00026aa0)" identifier (argument_list "(FUN_00026aa0)" ( identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x124) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x124) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x124)" * (cast_expression "(undefined4 *)(param_1 + 0x124)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x124)" ( (binary_expression "param_1 + 0x124" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_000373f0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_000373f0" (pointer_expression "*(code **)(param_1 + 0x3e4)" * (cast_expression "(code **)(param_1 + 0x3e4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e4)" ( (binary_expression "param_1 + 0x3e4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_00034300;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_00034300" (pointer_expression "*(code **)(param_1 + 0x3b0)" * (cast_expression "(code **)(param_1 + 0x3b0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3b0)" ( (binary_expression "param_1 + 0x3b0" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2d)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x128) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x128) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;" statement_identifier : (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 0x3ec)" * (cast_expression "(code **)(param_1 + 0x3ec)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3ec)" ( (binary_expression "param_1 + 0x3ec" identifier + number_literal) )))) = identifier) ;)) (expression_statement "*(code **)(param_1 + 1000) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 1000)" * (cast_expression "(code **)(param_1 + 1000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 1000)" ( (binary_expression "param_1 + 1000" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_00037780;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_00037780" (pointer_expression "*(code **)(param_1 + 0x3f0)" * (cast_expression "(code **)(param_1 + 0x3f0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f0)" ( (binary_expression "param_1 + 0x3f0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_00037680;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_00037680" (pointer_expression "*(code **)(param_1 + 0x3f4)" * (cast_expression "(code **)(param_1 + 0x3f4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f4)" ( (binary_expression "param_1 + 0x3f4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_00037580;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_00037580" (pointer_expression "*(code **)(param_1 + 0x3dc)" * (cast_expression "(code **)(param_1 + 0x3dc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3dc)" ( (binary_expression "param_1 + 0x3dc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_00035460;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_00035460" (pointer_expression "*(code **)(param_1 + 0x3e0)" * (cast_expression "(code **)(param_1 + 0x3e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3e0)" ( (binary_expression "param_1 + 0x3e0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3f8) = FUN_00034d80;" (assignment_expression "*(code **)(param_1 + 0x3f8) = FUN_00034d80" (pointer_expression "*(code **)(param_1 + 0x3f8)" * (cast_expression "(code **)(param_1 + 0x3f8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3f8)" ( (binary_expression "param_1 + 0x3f8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_00033b60;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_00033b60" (pointer_expression "*(code **)(param_1 + 0x3d8)" * (cast_expression "(code **)(param_1 + 0x3d8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3d8)" ( (binary_expression "param_1 + 0x3d8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x3fc) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x3fc) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x3fc)" * (cast_expression "(code **)(param_1 + 0x3fc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x3fc)" ( (binary_expression "param_1 + 0x3fc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(param_1 + 0x400) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x400) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x400)" * (cast_expression "(code **)(param_1 + 0x400)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x400)" ( (binary_expression "param_1 + 0x400" identifier + number_literal) )))) = identifier) ;) (if_statement "if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0xf4) != 0)" ( (binary_expression "*(int *)(param_1 + 0xf4) != 0" (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" { (expression_statement "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" identifier (argument_list "(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" ( (pointer_expression "*(int *)(param_1 + 0xf4)" * (cast_expression "(int *)(param_1 + 0xf4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf4)" ( (binary_expression "param_1 + 0xf4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 8)" * (cast_expression "(undefined4 *)(param_1 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 8)" ( (binary_expression "param_1 + 8" identifier + number_literal) )))) ))) ;) })) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0))" ( (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00027380(), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00027380(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00027380()" identifier = (call_expression "FUN_00027380()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_00035e50();" (call_expression "FUN_00035e50()" identifier (argument_list "()" ( ))) ;) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0))" ( (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) && (parenthesized_expression "(*(int *)(param_1 + 300) == 0)" ( (binary_expression "*(int *)(param_1 + 300) == 0" (pointer_expression "*(int *)(param_1 + 300)" * (cast_expression "(int *)(param_1 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) == number_literal) ))) )) (compound_statement "{\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" { (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x95)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "uVar17 = FUN_00018b50(uVar11,0x96);" (assignment_expression "uVar17 = FUN_00018b50(uVar11,0x96)" identifier = (call_expression "FUN_00018b50(uVar11,0x96)" identifier (argument_list "(uVar11,0x96)" ( identifier , number_literal )))) ;) (expression_statement "iVar7 = FUN_0006c310(uVar17,uVar11);" (assignment_expression "iVar7 = FUN_0006c310(uVar17,uVar11)" identifier = (call_expression "FUN_0006c310(uVar17,uVar11)" identifier (argument_list "(uVar17,uVar11)" ( identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x18c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x18c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x18c)" * (cast_expression "(int *)(param_1 + 0x18c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""X11 forwarding not enabled: unable to initialise X display"" " string_content ") , identifier , identifier ))) ;) }) (else_clause "else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" else (compound_statement "{\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" { (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x97)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);" (assignment_expression "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" identifier = (call_expression "FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x194),uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x194)" * (cast_expression "(undefined4 *)(param_1 + 0x194)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x194)" ( (binary_expression "param_1 + 0x194" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(int *)(param_1 + 400) = iVar7;" (assignment_expression "*(int *)(param_1 + 400) = iVar7" (pointer_expression "*(int *)(param_1 + 400)" * (cast_expression "(int *)(param_1 + 400)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 400)" ( (binary_expression "param_1 + 400" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c)" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" * (cast_expression "(undefined4 *)(iVar7 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x1c)" ( (binary_expression "iVar7 + 0x1c" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(param_1 + 0x18c)" * (cast_expression "(undefined4 *)(param_1 + 0x18c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x18c)" ( (binary_expression "param_1 + 0x18c" identifier + number_literal) ))))) ;) (expression_statement "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) }))) })) (expression_statement "iVar7 = FUN_0002cea0(param_1);" (assignment_expression "iVar7 = FUN_0002cea0(param_1)" identifier = (call_expression "FUN_0002cea0(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" { (expression_statement "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) })) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x16)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" { (expression_statement "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) })) (expression_statement "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , number_literal , number_literal ))) ;) (if_statement "if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" ( (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }" { (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" identifier = (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2b)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;) (expression_statement "uVar11 = 0x14;" (assignment_expression "uVar11 = 0x14" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" else (compound_statement "{\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" { (labeled_statement "LAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" statement_identifier : (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" identifier = (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2c)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;)) (expression_statement "uVar11 = 0x15;" (assignment_expression "uVar11 = 0x15" identifier = number_literal) ;) }))) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),uVar11)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , identifier ))))) ;) (if_statement "if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" if (parenthesized_expression "((local_64 == (int *)0x0) && (*pcVar16 == '\0'))" ( (binary_expression "(local_64 == (int *)0x0) && (*pcVar16 == '\0')" (parenthesized_expression "(local_64 == (int *)0x0)" ( (binary_expression "local_64 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" else (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" { (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" identifier = (call_expression "FUN_0002ab60(0)" identifier (argument_list "(0)" ( number_literal )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (labeled_statement "LAB_0002f2ad:\n        *piVar8 = 0x2a90;" statement_identifier : (expression_statement "*piVar8 = 0x2a90;" (assignment_expression "*piVar8 = 0x2a90" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x104) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x104) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x108) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x108) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x108)" * (cast_expression "(undefined4 *)(param_1 + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x108)" ( (binary_expression "param_1 + 0x108" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;" statement_identifier : (expression_statement "*(undefined4 *)(param_1 + 0x144) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x144) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x144)" * (cast_expression "(undefined4 *)(param_1 + 0x144)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x144)" ( (binary_expression "param_1 + 0x144" identifier + number_literal) )))) = number_literal) ;)) (if_statement "if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x148) != 0)" ( (binary_expression "*(int *)(param_1 + 0x148) != 0" (pointer_expression "*(int *)(param_1 + 0x148)" * (cast_expression "(int *)(param_1 + 0x148)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x148)" ( (binary_expression "param_1 + 0x148" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" { (expression_statement "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" identifier (argument_list "(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" ( identifier , (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" * (cast_expression "(undefined4 *)(param_1 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x11c)" ( (binary_expression "param_1 + 0x11c" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0x120)" * (cast_expression "(undefined4 *)(param_1 + 0x120)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x120)" ( (binary_expression "param_1 + 0x120" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x14c) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14c) != 0" (pointer_expression "*(int *)(param_1 + 0x14c)" * (cast_expression "(int *)(param_1 + 0x14c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14c)" ( (binary_expression "param_1 + 0x14c" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0003a8b0(param_1,0xc);\n      }" { (expression_statement "FUN_0003a8b0(param_1,0xc);" (call_expression "FUN_0003a8b0(param_1,0xc)" identifier (argument_list "(param_1,0xc)" ( identifier , number_literal ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" ( (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" { (expression_statement "FUN_0001a2d0(*(int *)(param_1 + 0x14));" (call_expression "FUN_0001a2d0(*(int *)(param_1 + 0x14))" identifier (argument_list "(*(int *)(param_1 + 0x14))" ( (pointer_expression "*(int *)(param_1 + 0x14)" * (cast_expression "(int *)(param_1 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x14)" ( (binary_expression "param_1 + 0x14" identifier + number_literal) )))) ))) ;) })) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (labeled_statement "LAB_0002db95:\n      *piVar8 = 0x2abd;" statement_identifier : (expression_statement "*piVar8 = 0x2abd;" (assignment_expression "*piVar8 = 0x2abd" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "piVar9 = (int *)FUN_0001c990(1,0x5c);" (assignment_expression "piVar9 = (int *)FUN_0001c990(1,0x5c)" identifier = (cast_expression "(int *)FUN_0001c990(1,0x5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(1,0x5c)" identifier (argument_list "(1,0x5c)" ( number_literal , number_literal ))))) ;) (expression_statement "*(int **)(param_1 + 0x128) = piVar9;" (assignment_expression "*(int **)(param_1 + 0x128) = piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" * (cast_expression "(int **)(param_1 + 0x128)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) = identifier) ;) (expression_statement "*piVar9 = param_1;" (assignment_expression "*piVar9 = param_1" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "FUN_0002c3f0();" (call_expression "FUN_0002c3f0()" identifier (argument_list "()" ( ))) ;) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) ;) (if_statement "if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" if (parenthesized_expression "(*pcVar16 == '\0')" ( (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" * identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }" { (expression_statement "iVar7 = FUN_0002aae0();" (assignment_expression "iVar7 = FUN_0002aae0()" identifier = (call_expression "FUN_0002aae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Opening session as main channel"" " string_content ") ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(param_1 + 300) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 0" (pointer_expression "*(undefined4 *)(param_1 + 300)" * (cast_expression "(undefined4 *)(param_1 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" else (compound_statement "{\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" { (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2f)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier = (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");" (call_expression "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x128)" * (cast_expression "(undefined4 *)(param_1 + 0x128)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) , identifier , identifier , (string_literal ""main channel"" " string_content ") ))) ;) (expression_statement "*(undefined4 *)(param_1 + 300) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 1" (pointer_expression "*(undefined4 *)(param_1 + 300)" * (cast_expression "(undefined4 *)(param_1 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 300)" ( (binary_expression "param_1 + 300" identifier + number_literal) )))) = number_literal) ;) }))) (labeled_statement "LAB_0002e0c6:\n    *piVar8 = 0x2a03;" statement_identifier : (expression_statement "*piVar8 = 0x2a03;" (assignment_expression "*piVar8 = 0x2a03" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 == 0x27b6)" ( (binary_expression "iVar7 == 0x27b6" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" { (if_statement "if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" { (labeled_statement "LAB_0002d664:\n      *piVar8 = 0x27b6;" statement_identifier : (expression_statement "*piVar8 = 0x27b6;" (assignment_expression "*piVar8 = 0x27b6" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sVar4 = piVar8[0x32];" (assignment_expression "sVar4 = piVar8[0x32]" identifier = (subscript_expression "piVar8[0x32]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" if (parenthesized_expression "((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0))" ( (binary_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" (parenthesized_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1]))" ( (binary_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])" (parenthesized_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06'))" ( (binary_expression "(local_34 == sVar4 + 2) && (*local_30 == '\x06')" (parenthesized_expression "(local_34 == sVar4 + 2)" ( (binary_expression "local_34 == sVar4 + 2" identifier == (binary_expression "sVar4 + 2" identifier + number_literal)) )) && (parenthesized_expression "(*local_30 == '\x06')" ( (binary_expression "*local_30 == '\x06'" (pointer_expression "*local_30" * identifier) == (char_literal "'\x06'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(sVar4 == (int)local_30[1])" ( (binary_expression "sVar4 == (int)local_30[1]" identifier == (cast_expression "(int)local_30[1]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_30[1]" identifier [ number_literal ]))) ))) )) && (parenthesized_expression "(iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" ( (comma_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" identifier = (call_expression "memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" identifier (argument_list "(local_30 + 2,(void *)piVar8[0x33],sVar4)" ( (binary_expression "local_30 + 2" identifier + number_literal) , (cast_expression "(void *)piVar8[0x33]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x33]" identifier [ number_literal ])) , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }" { (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0xc))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0xc)" * (pointer_expression "*(code **)(piVar8[0x30] + 0xc)" * (cast_expression "(code **)(piVar8[0x30] + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0xc)" ( (binary_expression "piVar8[0x30] + 0xc" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (pointer_expression "*(undefined4 *)(param_1 + 0x6a4)" * (cast_expression "(undefined4 *)(param_1 + 0x6a4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a4)" ( (binary_expression "param_1 + 0x6a4" identifier + number_literal) )))) , (binary_expression "piVar8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }" { (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x1c))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x1c)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x1c)" * (cast_expression "(code **)(piVar8[0x30] + 0x1c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x1c)" ( (binary_expression "piVar8[0x30] + 0x1c" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x31)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x31" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }" { (expression_statement "piVar8[0x34] = 0;" (assignment_expression "piVar8[0x34] = 0" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x35] = 0;" (assignment_expression "piVar8[0x35] = 0" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x36] = 0;" (assignment_expression "piVar8[0x36] = 0" (subscript_expression "piVar8[0x36]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0x37] = 0;" (assignment_expression "piVar8[0x37] = 0" (subscript_expression "piVar8[0x37]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0002efad:\n            local_64 = piVar8 + 0x31;" statement_identifier : (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" identifier = (binary_expression "piVar8 + 0x31" identifier + number_literal)) ;)) (expression_statement "pcVar2 = *(code **)(piVar8[0x30] + 0x14);" (assignment_expression "pcVar2 = *(code **)(piVar8[0x30] + 0x14)" identifier = (pointer_expression "*(code **)(piVar8[0x30] + 0x14)" * (cast_expression "(code **)(piVar8[0x30] + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x14)" ( (binary_expression "piVar8[0x30] + 0x14" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x28)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );" (assignment_expression "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" identifier = (call_expression "(*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" (parenthesized_expression "(*pcVar2)" ( (pointer_expression "*pcVar2" * identifier) )) (argument_list "(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier , (subscript_expression "piVar8[0x38]" identifier [ number_literal ]) , identifier , (binary_expression "piVar8 + 0x34" identifier + number_literal) , (binary_expression "piVar8 + 0x36" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x39] = uVar12;" (assignment_expression "piVar8[0x39] = uVar12" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" if (parenthesized_expression "(uVar12 < 2)" ( (binary_expression "uVar12 < 2" identifier < number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication initialised"" " string_content ") , identifier , identifier ))) ;) (if_statement "if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" if (parenthesized_expression "(piVar8[0x36] != 0)" ( (binary_expression "piVar8[0x36] != 0" (subscript_expression "piVar8[0x36]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" { (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" identifier = (cast_expression "(undefined4 *)FUN_00029d20()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);" (call_expression "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x18))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x18)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x18)" * (cast_expression "(code **)(piVar8[0x30] + 0x18)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x18)" ( (binary_expression "piVar8[0x30] + 0x18" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x36" identifier + number_literal) , identifier , identifier ))) ;) })) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" { (labeled_statement "LAB_0002fcf7:\n                *piVar8 = 0x2807;" statement_identifier : (expression_statement "*piVar8 = 0x2807;" (assignment_expression "*piVar8 = 0x2807" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) }) (else_clause "else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" else (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication initialisation failed"" " string_content ") , identifier , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" identifier = (call_expression "(**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x2c))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x2c)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x2c)" * (cast_expression "(code **)(piVar8[0x30] + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x2c)" ( (binary_expression "piVar8[0x30] + 0x2c" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar8[0x31]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) , number_literal , number_literal ))) ;) (expression_statement "FUN_0001d220(piVar8[0x33]);" (call_expression "FUN_0001d220(piVar8[0x33])" identifier (argument_list "(piVar8[0x33])" ( (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) }) (else_clause "else {\n                iVar7 = piVar8[0x39];\n              }" else (compound_statement "{\n                iVar7 = piVar8[0x39];\n              }" { (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) }))) }))) (labeled_statement "LAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" statement_identifier : (if_statement "if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication loop finished OK"" " string_content ") ))) ;) (expression_statement "piVar9 = (int *)FUN_00029d20();" (assignment_expression "piVar9 = (int *)FUN_00029d20()" identifier = (cast_expression "(int *)FUN_00029d20()" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" identifier = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "piVar8[0x2e] = (int)piVar9;" (assignment_expression "piVar8[0x2e] = (int)piVar9" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar9[6] = *piVar9;" (assignment_expression "piVar9[6] = *piVar9" (subscript_expression "piVar9[6]" identifier [ number_literal ]) = (pointer_expression "*piVar9" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,0x32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,0x32)" identifier (argument_list "(local_2c[0]._1_3_,0x32)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" identifier = (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;" (assignment_expression "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7" (subscript_expression "piVar8[0x32]" identifier [ number_literal ]) = (binary_expression "*(int *)piVar8[0x2e] - iVar7" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) - identifier)) ;) (expression_statement "piVar8[0x33] = iVar5 + iVar7;" (assignment_expression "piVar8[0x33] = iVar5 + iVar7" (subscript_expression "piVar8[0x33]" identifier [ number_literal ]) = (binary_expression "iVar5 + iVar7" identifier + identifier)) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x24))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x24)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x24)" * (cast_expression "(code **)(piVar8[0x30] + 0x24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x24)" ( (binary_expression "piVar8[0x30] + 0x24" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (subscript_expression "piVar8[0x31]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) , identifier ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" identifier = (cast_expression "(undefined4 *)FUN_00029d20()" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00029d20()" identifier (argument_list "()" ( ))))) ;) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x28))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x28)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x28)" * (cast_expression "(code **)(piVar8[0x30] + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x28)" ( (binary_expression "piVar8[0x30] + 0x28" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],local_2c)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier ))) ;) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" identifier = (subscript_expression "piVar8[0x30]" identifier [ number_literal ])) ;) }) (else_clause "else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" else (compound_statement "{\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" { (labeled_statement "LAB_0002e970:\n              iVar7 = piVar8[0x30];" statement_identifier : (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" identifier = (subscript_expression "piVar8[0x30]" identifier [ number_literal ])) ;)) })))) (expression_statement "local_60 = (char **)(piVar8 + 0x38);" (assignment_expression "local_60 = (char **)(piVar8 + 0x38)" identifier = (cast_expression "(char **)(piVar8 + 0x38)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8 + 0x38)" ( (binary_expression "piVar8 + 0x38" identifier + number_literal) )))) ;) (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" identifier = (binary_expression "piVar8 + 0x31" identifier + number_literal)) ;) (expression_statement "(**(code **)(iVar7 + 0x10))(iVar7,local_60);" (call_expression "(**(code **)(iVar7 + 0x10))(iVar7,local_60)" (parenthesized_expression "(**(code **)(iVar7 + 0x10))" ( (pointer_expression "**(code **)(iVar7 + 0x10)" * (pointer_expression "*(code **)(iVar7 + 0x10)" * (cast_expression "(code **)(iVar7 + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) ))))) )) (argument_list "(iVar7,local_60)" ( identifier , identifier ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);" (call_expression "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x20))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x20)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x20)" * (cast_expression "(code **)(piVar8[0x30] + 0x20)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x20)" ( (binary_expression "piVar8[0x30] + 0x20" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],local_64)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , identifier ))) ;) }) (else_clause "else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" else (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication failed to get credentials"" " string_content ") , identifier , identifier ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);" (call_expression "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x10))" ( (pointer_expression "**(code **)(piVar8[0x30] + 0x10)" * (pointer_expression "*(code **)(piVar8[0x30] + 0x10)" * (cast_expression "(code **)(piVar8[0x30] + 0x10)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 0x10)" ( (binary_expression "piVar8[0x30] + 0x10" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x38)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x38" identifier + number_literal) ))) ;) }))) }) (else_clause "else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" else (if_statement "if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" if (parenthesized_expression "(iVar7 == 3)" ( (binary_expression "iVar7 == 3" identifier == number_literal) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI import name failed - Bad service name"" " string_content ") , number_literal , number_literal ))) ;) }) (else_clause "else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" else (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI import name failed"" " string_content ") , identifier , identifier ))) ;) }))))) }) (else_clause "else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" else (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication - wrong response from server"" " string_content ") ))) ;) }))) }) (else_clause "else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" else (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication request refused"" " string_content ") ))) ;) }))) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (labeled_statement "LAB_0002d2f8:\n    local_30 = (char *)0x0;" statement_identifier : (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar7 == 0) goto LAB_0002d310;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;)) (labeled_statement "LAB_0002d3e0:\n    iVar7 = param_1 + 0x178;" statement_identifier : (expression_statement "iVar7 = param_1 + 0x178;" (assignment_expression "iVar7 = param_1 + 0x178" identifier = (binary_expression "param_1 + 0x178" identifier + number_literal)) ;)) (expression_statement "iVar5 = FUN_0001c7f0(iVar7);" (assignment_expression "iVar5 = FUN_0001c7f0(iVar7)" identifier = (call_expression "FUN_0001c7f0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (if_statement "if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" if (parenthesized_expression "((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0))" ( (binary_expression "(iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)" (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) && (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" ( (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" { (expression_statement "pcVar16 = (char *)FUN_0001c990(iVar5,1);" (assignment_expression "pcVar16 = (char *)FUN_0001c990(iVar5,1)" identifier = (cast_expression "(char *)FUN_0001c990(iVar5,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar5,1)" identifier (argument_list "(iVar5,1)" ( identifier , number_literal ))))) ;) (expression_statement "FUN_0001c8e0(iVar7,pcVar16,iVar5);" (call_expression "FUN_0001c8e0(iVar7,pcVar16,iVar5)" identifier (argument_list "(iVar7,pcVar16,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar15 = PTR_stderr_000a4fa0;" (assignment_expression "puVar15 = PTR_stderr_000a4fa0" identifier = identifier) ;) (if_statement "if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 2) == 0)" ( (binary_expression "((byte)DAT_000a5b0c & 2) == 0" (parenthesized_expression "((byte)DAT_000a5b0c & 2)" ( (binary_expression "(byte)DAT_000a5b0c & 2" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }" { (expression_statement "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);" (call_expression "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , identifier , identifier ))) ;) }) (else_clause "else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" else (compound_statement "{\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" { (expression_statement "pcVar21 = pcVar16;" (assignment_expression "pcVar21 = pcVar16" identifier = identifier) ;) (if_statement "if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" { (do_statement "do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);" do (compound_statement "{\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          }" { (expression_statement "cVar1 = *pcVar21;" (assignment_expression "cVar1 = *pcVar21" identifier = (pointer_expression "*pcVar21" * identifier)) ;) (if_statement "if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" if (parenthesized_expression "((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))))" ( (binary_expression "(cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" (parenthesized_expression "(cVar1 != '\r')" ( (binary_expression "cVar1 != '\r'" identifier != (char_literal "'\r'" ' escape_sequence ')) )) && (parenthesized_expression "((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" ( (parenthesized_expression "(cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))" ( (binary_expression "cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)" (binary_expression "cVar1 == '\n'" identifier == (char_literal "'\n'" ' escape_sequence ')) || (parenthesized_expression "(((int)cVar1 & 0x60U) != 0)" ( (binary_expression "((int)cVar1 & 0x60U) != 0" (parenthesized_expression "((int)cVar1 & 0x60U)" ( (binary_expression "(int)cVar1 & 0x60U" (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) & number_literal) )) != number_literal) ))) )) ))) )) (compound_statement "{\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" { (expression_statement "fputc((int)cVar1,*(FILE **)puVar15);" (call_expression "fputc((int)cVar1,*(FILE **)puVar15)" identifier (argument_list "((int)cVar1,*(FILE **)puVar15)" ( (cast_expression "(int)cVar1" ( (type_descriptor "int" primitive_type) ) identifier) , (pointer_expression "*(FILE **)puVar15" * (cast_expression "(FILE **)puVar15" ( (type_descriptor "FILE **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ))) ;) })) (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" identifier = (binary_expression "pcVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar21 != pcVar16 + iVar5)" ( (binary_expression "pcVar21 != pcVar16 + iVar5" identifier != (binary_expression "pcVar16 + iVar5" identifier + identifier)) )) ;) })) }))) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) })) (expression_statement "FUN_0001c7a0(iVar7);" (call_expression "FUN_0001c7a0(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" if (parenthesized_expression "(param_4[2] == 0x34)" ( (binary_expression "param_4[2] == 0x34" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Access granted")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Access granted"" " string_content ") ))) ;) (expression_statement "piVar8[0xe] = 1;" (assignment_expression "piVar8[0xe] = 1" (subscript_expression "piVar8[0xe]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d9b1;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" if (parenthesized_expression "(param_4[2] == 0x33)" ( (binary_expression "param_4[2] == 0x33" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }" { (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = param_4[6];" (assignment_expression "iVar7 = param_4[6]" identifier = (subscript_expression "param_4[6]" identifier [ number_literal ])) ;) (if_statement "if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" if (parenthesized_expression "((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'))" ( (binary_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" (parenthesized_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0)" ( (binary_expression "*param_4 == iVar7 || *param_4 - iVar7 < 0" (binary_expression "*param_4 == iVar7" (pointer_expression "*param_4" * identifier) == identifier) || (binary_expression "*param_4 - iVar7 < 0" (binary_expression "*param_4 - iVar7" (pointer_expression "*param_4" * identifier) - identifier) < number_literal)) )) || (parenthesized_expression "(cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" ( (comma_expression "cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_4[5] + iVar7)" identifier = (pointer_expression "*(char *)(param_4[5] + iVar7)" * (cast_expression "(char *)(param_4[5] + iVar7)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[5] + iVar7)" ( (binary_expression "param_4[5] + iVar7" (subscript_expression "param_4[5]" identifier [ number_literal ]) + identifier) ))))) , (comma_expression "param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "param_4[6] = iVar7 + 1" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "iVar7 + 1" identifier + number_literal)) , (binary_expression "cVar1 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')))) ))) )) (compound_statement "{\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }" { (expression_statement "iVar7 = piVar8[1];" (assignment_expression "iVar7 = piVar8[1]" identifier = (subscript_expression "piVar8[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" { (if_statement "if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 - 2U < 2)" ( (binary_expression "iVar7 - 2U < 2" (binary_expression "iVar7 - 2U" identifier - number_literal) < number_literal) )) (compound_statement "{\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }" { (if_statement "if (iVar7 == 2) {\n              FUN_00029500();\n            }" if (parenthesized_expression "(iVar7 == 2)" ( (binary_expression "iVar7 == 2" identifier == number_literal) )) (compound_statement "{\n              FUN_00029500();\n            }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused our key"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (compound_statement "{\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused public-key signature despite accepting key!"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 == 7)" ( (binary_expression "iVar7 == 7" identifier == number_literal) )) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Server refused keyboard-interactive authentication"" " string_content ") ))) ;) }) (else_clause "else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" else (if_statement "if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" if (parenthesized_expression "(iVar7 != 5)" ( (binary_expression "iVar7 != 5" identifier != number_literal) )) (compound_statement "{\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" { (if_statement "if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" if (parenthesized_expression "(iVar7 == 6)" ( (binary_expression "iVar7 == 6" identifier == number_literal) )) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Keyboard-interactive authentication failed"" " string_content ") , number_literal , number_literal ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) }) (else_clause "else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" else (compound_statement "{\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" { (if_statement "if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" if (parenthesized_expression "(iVar7 != 4)" ( (binary_expression "iVar7 != 4" identifier != number_literal) )) (compound_statement "{\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" { (expression_statement "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");" (call_expression "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" identifier (argument_list "("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" ( (string_literal ""s->type == AUTH_TYPE_PASSWORD"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Password authentication failed"" " string_content ") ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1e)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" { (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;" if (parenthesized_expression "((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))" ( (binary_expression "(piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" (parenthesized_expression "(piVar8[0x13] == 0)" ( (binary_expression "piVar8[0x13] == 0" (subscript_expression "piVar8[0x13]" identifier [ number_literal ]) == number_literal) )) || (parenthesized_expression "(iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0" (assignment_expression "iVar7 = FUN_000189a0(uVar11,0x1e)" identifier = (call_expression "FUN_000189a0(uVar11,0x1e)" identifier (argument_list "(uVar11,0x1e)" ( identifier , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0002d7cb;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d7f9;" goto statement_identifier ;) })) }))) })))))))) })) }) (else_clause "else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" else (compound_statement "{\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Further authentication required"" " string_content ") ))) ;) }))) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[5] = iVar7;" (assignment_expression "piVar8[5] = iVar7" (subscript_expression "piVar8[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[6] = iVar7;" (assignment_expression "piVar8[6] = iVar7" (subscript_expression "piVar8[6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);" (assignment_expression "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x26)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" if (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" { (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) ;) (expression_statement "uVar12 = (uint)(iVar7 != 0);" (assignment_expression "uVar12 = (uint)(iVar7 != 0)" identifier = (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )))) ;) })) (expression_statement "piVar8[7] = uVar12;" (assignment_expression "piVar8[7] = uVar12" (subscript_expression "piVar8[7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" identifier = (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x27)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (if_statement "if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" if (parenthesized_expression "((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0))" ( (binary_expression "(iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar7 = FUN_0002bed0(), iVar7 == 0)" ( (comma_expression "iVar7 = FUN_0002bed0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_0002bed0()" identifier = (call_expression "FUN_0002bed0()" identifier (argument_list "()" ( )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n        piVar8[10] = 0;\n      }" { (expression_statement "piVar8[10] = 0;" (assignment_expression "piVar8[10] = 0" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" else (compound_statement "{\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" { (expression_statement "iVar7 = *(int *)(param_1 + 0x6a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x6a8)" identifier = (pointer_expression "*(int *)(param_1 + 0x6a8)" * (cast_expression "(int *)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) ))))) ;) (if_statement "if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" { (expression_statement "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" identifier = (call_expression "FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) )))) ;) (expression_statement "*(int *)(param_1 + 0x6a8) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6a8) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6a8)" * (cast_expression "(int *)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));" (assignment_expression "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4))" (subscript_expression "piVar8[10]" identifier [ number_literal ]) = (call_expression "(uint)(0 < *(int *)(iVar7 + 4))" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(0 < *(int *)(iVar7 + 4))" ( (binary_expression "0 < *(int *)(iVar7 + 4)" number_literal < (pointer_expression "*(int *)(iVar7 + 4)" * (cast_expression "(int *)(iVar7 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))))) )))) ;) }))) }) (else_clause "else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" else (compound_statement "{\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" { (if_statement "if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" if (parenthesized_expression "(piVar8[1] != 5)" ( (binary_expression "piVar8[1] != 5" (subscript_expression "piVar8[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" { (expression_statement "pcVar16 = "Strange packet received during authentication: type %d";" (assignment_expression "pcVar16 = "Strange packet received during authentication: type %d"" identifier = (string_literal ""Strange packet received during authentication: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" if (parenthesized_expression "(piVar8[5] != 0)" ( (binary_expression "piVar8[5] != 0" (subscript_expression "piVar8[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" { (if_statement "if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" if (parenthesized_expression "((piVar8[9] == 0) && (piVar8[0x21] != 0))" ( (binary_expression "(piVar8[9] == 0) && (piVar8[0x21] != 0)" (parenthesized_expression "(piVar8[9] == 0)" ( (binary_expression "piVar8[9] == 0" (subscript_expression "piVar8[9]" identifier [ number_literal ]) == number_literal) )) && (parenthesized_expression "(piVar8[0x21] != 0)" ( (binary_expression "piVar8[0x21] != 0" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);" (call_expression "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20])" identifier (argument_list "(param_1,"Trying Pageant key #%d",piVar8[0x20])" ( identifier , (string_literal ""Trying Pageant key #%d"" " string_content ") , (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) ))) ;) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" identifier = (pointer_expression "*(uint *)piVar8[0x1d]" * (cast_expression "(uint *)piVar8[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "iVar5 = piVar8[0x1d];" (assignment_expression "iVar5 = piVar8[0x1d]" identifier = (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x25] = iVar6;" (assignment_expression "piVar8[0x25] = iVar6" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = iVar5 + 4;" (assignment_expression "iVar7 = iVar5 + 4" identifier = (binary_expression "iVar5 + 4" identifier + number_literal)) ;) (expression_statement "piVar8[0x22] = iVar7;" (assignment_expression "piVar8[0x22] = iVar7" (subscript_expression "piVar8[0x22]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x1d] = iVar7 + iVar6;" (assignment_expression "piVar8[0x1d] = iVar7 + iVar6" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "iVar7 + iVar6" identifier + identifier)) ;) (expression_statement "uVar12 = *(uint *)(iVar5 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar5 + 4)" identifier = (pointer_expression "*(uint *)(iVar5 + 4)" * (cast_expression "(uint *)(iVar5 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x26] = iVar7;" (assignment_expression "piVar8[0x26] = iVar7" (subscript_expression "piVar8[0x26]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x23] = piVar8[0x22] + 4;" (assignment_expression "piVar8[0x23] = piVar8[0x22] + 4" (subscript_expression "piVar8[0x23]" identifier [ number_literal ]) = (binary_expression "piVar8[0x22] + 4" (subscript_expression "piVar8[0x22]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" identifier = (pointer_expression "*(uint *)piVar8[0x1d]" * (cast_expression "(uint *)piVar8[0x1d]" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x1d]" identifier [ number_literal ])))) ;) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier = (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" identifier (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ;) (expression_statement "piVar8[0x27] = iVar7;" (assignment_expression "piVar8[0x27] = iVar7" (subscript_expression "piVar8[0x27]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar8[0x24] = piVar8[0x1d] + 4;" (assignment_expression "piVar8[0x24] = piVar8[0x1d] + 4" (subscript_expression "piVar8[0x24]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;" (assignment_expression "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) = (binary_expression "piVar8[0x1d] + 4 + iVar7" (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" identifier [ number_literal ]) + number_literal) + identifier)) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 3;" (assignment_expression "piVar8[1] = 3" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e2e0;" goto statement_identifier ;) })) (if_statement "if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0))" ( (binary_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)" (parenthesized_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0))" ( (binary_expression "(piVar8[0x14] != 0) && (piVar8[0x16] != 0)" (parenthesized_expression "(piVar8[0x14] != 0)" ( (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0x16] != 0)" ( (binary_expression "piVar8[0x16] != 0" (subscript_expression "piVar8[0x16]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(piVar8[8] == 0)" ( (binary_expression "piVar8[8] == 0" (subscript_expression "piVar8[8]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" { (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offered public key")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Offered public key"" " string_content ") ))) ;) (labeled_statement "LAB_0002f4f1:\n        *piVar8 = 0x26df;" statement_identifier : (expression_statement "*piVar8 = 0x26df;" (assignment_expression "*piVar8 = 0x26df" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) })) (if_statement "if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" if (parenthesized_expression "((piVar8[10] != 0) && (piVar8[0xb] == 0))" ( (binary_expression "(piVar8[10] != 0) && (piVar8[0xb] == 0)" (parenthesized_expression "(piVar8[10] != 0)" ( (binary_expression "piVar8[10] != 0" (subscript_expression "piVar8[10]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0xb] == 0)" ( (binary_expression "piVar8[0xb] == 0" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" { (expression_statement "piVar8[1] = 5;" (assignment_expression "piVar8[1] = 5" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xb] = 1;" (assignment_expression "piVar8[0xb] = 1" (subscript_expression "piVar8[0xb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = DAT_0007d228;" (assignment_expression "iVar7 = DAT_0007d228" identifier = identifier) ;) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" { (labeled_statement "LAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" statement_identifier : (expression_statement "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" (call_expression "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" identifier (argument_list "("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" ( (string_literal ""s->gsslib"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;)) })) (do_statement "do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);" do (compound_statement "{\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      }" { (expression_statement "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);" (assignment_expression "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" identifier = (call_expression "FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal , identifier )))) ;) (expression_statement "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];" (assignment_expression "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1]" identifier = (subscript_expression "(*(undefined4 **)(param_1 + 0x6a8))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x6a8))" ( (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" * (cast_expression "(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) )))) )) [ number_literal ])) ;) (if_statement "if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" if (parenthesized_expression "(0 < iVar5)" ( (binary_expression "0 < iVar5" number_literal < identifier) )) (compound_statement "{\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" { (expression_statement "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);" (assignment_expression "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8)" identifier = (cast_expression "(int *)**(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_1 + 0x6a8)" * (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" * (cast_expression "(undefined4 **)(param_1 + 0x6a8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x6a8)" ( (binary_expression "param_1 + 0x6a8" identifier + number_literal) ))))))) ;) (if_statement "if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" if (parenthesized_expression "(iVar6 == *piVar9)" ( (binary_expression "iVar6 == *piVar9" identifier == (pointer_expression "*piVar9" * identifier)) )) (compound_statement "{\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" { (labeled_statement "LAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;" statement_identifier : (expression_statement "piVar8[0x30] = (int)piVar9;" (assignment_expression "piVar8[0x30] = (int)piVar9" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) = (cast_expression "(int)piVar9" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (goto_statement "goto LAB_0002d550;" goto statement_identifier ;) })) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" { (expression_statement "piVar9 = piVar9 + 0x15;" (assignment_expression "piVar9 = piVar9 + 0x15" identifier = (binary_expression "piVar9 + 0x15" identifier + number_literal)) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (if_statement "if (iVar18 == iVar5) break;" if (parenthesized_expression "(iVar18 == iVar5)" ( (binary_expression "iVar18 == iVar5" identifier == identifier) )) (break_statement "break;" break ;)) (if_statement "if (*piVar9 == iVar6) goto LAB_0002ebb0;" if (parenthesized_expression "(*piVar9 == iVar6)" ( (binary_expression "*piVar9 == iVar6" (pointer_expression "*piVar9" * identifier) == identifier) )) (goto_statement "goto LAB_0002ebb0;" goto statement_identifier ;)) })) })) (expression_statement "local_64 = (int *)((int)local_64 + 1);" (assignment_expression "local_64 = (int *)((int)local_64 + 1)" identifier = (cast_expression "(int *)((int)local_64 + 1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_64 + 1)" ( (binary_expression "(int)local_64 + 1" (cast_expression "(int)local_64" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "((int *)iVar7 != local_64)" ( (binary_expression "(int *)iVar7 != local_64" (cast_expression "(int *)iVar7" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) != identifier) )) ;) (expression_statement "piVar9 = (int *)piVar8[0x30];" (assignment_expression "piVar9 = (int *)piVar8[0x30]" identifier = (cast_expression "(int *)piVar8[0x30]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x30]" identifier [ number_literal ]))) ;) (labeled_statement "LAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;" statement_identifier : (if_statement "if (piVar9 == (int *)0x0) goto LAB_000301fa;" if (parenthesized_expression "(piVar9 == (int *)0x0)" ( (binary_expression "piVar9 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000301fa;" goto statement_identifier ;))) (if_statement "if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" if (parenthesized_expression "(piVar9[1] != 0)" ( (binary_expression "piVar9[1] != 0" (subscript_expression "piVar9[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1])" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar9[1])" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (subscript_expression "piVar9[1]" identifier [ number_literal ]) ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Attempting GSSAPI authentication"" " string_content ") ))) ;) (expression_statement "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);" (call_expression "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 8))" ( (pointer_expression "**(code **)(piVar8[0x30] + 8)" * (pointer_expression "*(code **)(piVar8[0x30] + 8)" * (cast_expression "(code **)(piVar8[0x30] + 8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0x30] + 8)" ( (binary_expression "piVar8[0x30] + 8" (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) + number_literal) ))))) )) (argument_list "(piVar8[0x30],piVar8 + 0x32)" ( (subscript_expression "piVar8[0x30]" identifier [ number_literal ]) , (binary_expression "piVar8 + 0x32" identifier + number_literal) ))) ;) (expression_statement "local_24 = 0x1000000;" (assignment_expression "local_24 = 0x1000000" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto LAB_0002d664;" goto statement_identifier ;) })) (if_statement "if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "((piVar8[7] != 0) && (piVar8[0xc] == 0))" ( (binary_expression "(piVar8[7] != 0) && (piVar8[0xc] == 0)" (parenthesized_expression "(piVar8[7] != 0)" ( (binary_expression "piVar8[7] != 0" (subscript_expression "piVar8[7]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(piVar8[0xc] == 0)" ( (binary_expression "piVar8[0xc] == 0" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" { (expression_statement "piVar8[1] = 6;" (assignment_expression "piVar8[1] = 6" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Attempting keyboard-interactive authentication"" " string_content ") ))) ;) (labeled_statement "LAB_0002e166:\n      *piVar8 = 0x284b;" statement_identifier : (expression_statement "*piVar8 = 0x284b;" (assignment_expression "*piVar8 = 0x284b" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(piVar8[6] == 0)" ( (binary_expression "piVar8[6] == 0" (subscript_expression "piVar8[6]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" { (expression_statement "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" identifier = (call_expression "FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" identifier (argument_list "("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" ( (string_literal ""No supported authentication methods available (server sent: %.*s)"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00034b00(0xe,0);" (call_expression "FUN_00034b00(0xe,0)" identifier (argument_list "(0xe,0)" ( number_literal , number_literal ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" * (cast_expression "(undefined4 *)(param_1 + 0x188)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x188)" ( (binary_expression "param_1 + 0x188" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("SSH password")" identifier = (call_expression "FUN_0001caa0("SSH password")" identifier (argument_list "("SSH password")" ( (string_literal ""SSH password"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));" (assignment_expression "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" identifier = (call_expression "FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" identifier (argument_list "("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" ( (string_literal ""%s@%s\'s password: "" " string_content escape_sequence string_content ") , (pointer_expression "*(undefined4 *)(param_1 + 0x250)" * (cast_expression "(undefined4 *)(param_1 + 0x250)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x250)" ( (binary_expression "param_1 + 0x250" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" * (cast_expression "(undefined4 *)(param_1 + 0xf8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" statement_identifier : (if_statement "if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002d68e:\n      *piVar8 = 0x28e8;" statement_identifier : (expression_statement "*piVar8 = 0x28e8;" (assignment_expression "*piVar8 = 0x28e8" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" { (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" ( (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" * (pointer_expression "*(int **)(iVar5 + 0x18)" * (cast_expression "(int **)(iVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent password")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent password"" " string_content ") ))) ;) (expression_statement "piVar8[1] = 4;" (assignment_expression "piVar8[1] = 4" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002dd1c;" goto statement_identifier ;) })) (labeled_statement "LAB_0002ea6c:\n    FUN_0001c2f0(iVar5);" statement_identifier : (expression_statement "FUN_0001c2f0(iVar5);" (call_expression "FUN_0001c2f0(iVar5)" identifier (argument_list "(iVar5)" ( identifier ))) ;)) (labeled_statement "LAB_0002ea71:\n    FUN_00034b00(0xd,1);" statement_identifier : (expression_statement "FUN_00034b00(0xd,1);" (call_expression "FUN_00034b00(0xd,1)" identifier (argument_list "(0xd,1)" ( number_literal , number_literal ))) ;)) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 < 0x27b7)" ( (binary_expression "iVar7 < 0x27b7" identifier < number_literal) )) (compound_statement "{\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" { (if_statement "if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" if (parenthesized_expression "(iVar7 == 0x2561)" ( (binary_expression "iVar7 == 0x2561" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" { (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002f3ea;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e8c8:\n      *piVar8 = 0x2561;" statement_identifier : (expression_statement "*piVar8 = 0x2561;" (assignment_expression "*piVar8 = 0x2561" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" if (parenthesized_expression "(iVar7 < 0x2562)" ( (binary_expression "iVar7 < 0x2562" identifier < number_literal) )) (compound_statement "{\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" { (if_statement "if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" if (parenthesized_expression "(iVar7 == 0x246f)" ( (binary_expression "iVar7 == 0x246f" identifier == number_literal) )) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fadd;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fadd;" goto statement_identifier ;)) (if_statement "if (param_4[2] != 6) goto LAB_0002dbfb;" if (parenthesized_expression "(param_4[2] != 6)" ( (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_0002dbfb;" goto statement_identifier ;)) (expression_statement "piVar8[2] = 1;" (assignment_expression "piVar8[2] = 1" (subscript_expression "piVar8[2]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d97a;" goto statement_identifier ;) })) (if_statement "if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" if (parenthesized_expression "(iVar7 < 0x2470)" ( (binary_expression "iVar7 < 0x2470" identifier < number_literal) )) (compound_statement "{\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" { (if_statement "if (iVar7 == 0) goto LAB_0002d8d0;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002d8d0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" if (parenthesized_expression "(iVar7 == 0x247a)" ( (binary_expression "iVar7 == 0x247a" identifier == number_literal) )) (compound_statement "{\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" { (if_statement "if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" { (if_statement "if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" if (parenthesized_expression "(param_4[2] != 6)" ( (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" { (expression_statement "pcVar16 = "Server refused service request";" (assignment_expression "pcVar16 = "Server refused service request"" identifier = (string_literal ""Server refused service request"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d973;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002dc2e;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x24d9) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x24d9)" ( (binary_expression "iVar7 != 0x24d9" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) goto LAB_0002dba0;" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002dba0;" goto statement_identifier ;)) (if_statement "if (0 < param_3) goto LAB_0002eb58;" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (goto_statement "goto LAB_0002eb58;" goto statement_identifier ;)) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(param_1 + 0x254)" * (cast_expression "(char **)(param_1 + 0x254)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x254)" ( (binary_expression "param_1 + 0x254" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0x1e] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x1e] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x1e]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 600)" * (cast_expression "(int *)(param_1 + 600)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 600)" ( (binary_expression "param_1 + 600" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0002d78a;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" if (parenthesized_expression "(iVar7 == 0x2696)" ( (binary_expression "iVar7 == 0x2696" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" { (if_statement "if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" { (labeled_statement "LAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";" statement_identifier : (expression_statement "pcVar16 = "Unexpected data from server while waiting for agent response";" (assignment_expression "pcVar16 = "Unexpected data from server while waiting for agent response"" identifier = (string_literal ""Unexpected data from server while waiting for agent response"" " string_content ")) ;)) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(0 < param_3)" ( (binary_expression "0 < param_3" number_literal < identifier) )) (compound_statement "{\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" { (labeled_statement "LAB_0002f388:\n        *piVar8 = 0x2696;" statement_identifier : (expression_statement "*piVar8 = 0x2696;" (assignment_expression "*piVar8 = 0x2696" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)(param_1 + 0x254)" * (cast_expression "(char **)(param_1 + 0x254)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x254)" ( (binary_expression "param_1 + 0x254" identifier + number_literal) ))))) ;) (expression_statement "piVar8[0x29] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x29] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) = (pointer_expression "*(int *)(param_1 + 600)" * (cast_expression "(int *)(param_1 + 600)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 600)" ( (binary_expression "param_1 + 600" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];" statement_identifier : (expression_statement "piVar8[0x2d] = (int)local_2c[0];" (assignment_expression "piVar8[0x2d] = (int)local_2c[0]" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) = (cast_expression "(int)local_2c[0]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_2c[0]" identifier [ number_literal ]))) ;)) (expression_statement "FUN_0001d220(piVar8[0x2c]);" (call_expression "FUN_0001d220(piVar8[0x2c])" identifier (argument_list "(piVar8[0x2c])" ( (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x2d];" (assignment_expression "iVar7 = piVar8[0x2d]" identifier = (subscript_expression "piVar8[0x2d]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" { (if_statement "if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)))" ( (binary_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" (parenthesized_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e'))" ( (binary_expression "(piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')" (parenthesized_expression "(piVar8[0x29] < 9)" ( (binary_expression "piVar8[0x29] < 9" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) < number_literal) )) || (parenthesized_expression "(*(char *)(iVar7 + 4) != '\x0e')" ( (binary_expression "*(char *)(iVar7 + 4) != '\x0e'" (pointer_expression "*(char *)(iVar7 + 4)" * (cast_expression "(char *)(iVar7 + 4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) != (char_literal "'\x0e'" ' escape_sequence ')) ))) )) || (parenthesized_expression "(uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" ( (comma_expression "uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (assignment_expression "uVar12 = *(uint *)(iVar7 + 5)" identifier = (pointer_expression "*(uint *)(iVar7 + 5)" * (cast_expression "(uint *)(iVar7 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 5)" ( (binary_expression "iVar7 + 5" identifier + number_literal) ))))) , (binary_expression "piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (binary_expression "piVar8[0x29] - 9U" (subscript_expression "piVar8[0x29]" identifier [ number_literal ]) - number_literal) < (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" ( (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) )))) ))) )) (compound_statement "{\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" { (expression_statement "pcVar16 = "Pageant failed to answer challenge";" (assignment_expression "pcVar16 = "Pageant failed to answer challenge"" identifier = (string_literal ""Pageant failed to answer challenge"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sending Pageant\'s response"" " string_content escape_sequence string_content ") ))) ;) (expression_statement "uVar12 = *(uint *)(piVar8[0x2d] + 5);" (assignment_expression "uVar12 = *(uint *)(piVar8[0x2d] + 5)" identifier = (pointer_expression "*(uint *)(piVar8[0x2d] + 5)" * (cast_expression "(uint *)(piVar8[0x2d] + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2d] + 5)" ( (binary_expression "piVar8[0x2d] + 5" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) + number_literal) ))))) ;) (expression_statement "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);" (call_expression "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" identifier (argument_list "(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" ( (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) , (binary_expression "piVar8[0x2d] + 9" (subscript_expression "piVar8[0x2d]" identifier [ number_literal ]) + number_literal) , (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" identifier >> number_literal) | (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" ( (binary_expression "uVar12 & 0xff0000" identifier & number_literal) )) >> number_literal)) | (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" ( (binary_expression "uVar12 & 0xff00" identifier & number_literal) )) << number_literal)) | (binary_expression "uVar12 << 0x18" identifier << number_literal)) ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) })) (labeled_statement "LAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" statement_identifier : (if_statement "if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" if (parenthesized_expression "(piVar8[0x1f] == 0)" ( (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }" { (expression_statement "iVar5 = piVar8[0x20];" (assignment_expression "iVar5 = piVar8[0x20]" identifier = (subscript_expression "piVar8[0x20]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x20] = iVar5 + 1;" (assignment_expression "piVar8[0x20] = iVar5 + 1" (subscript_expression "piVar8[0x20]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (if_statement "if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }" if (parenthesized_expression "(piVar8[0x21] <= iVar5 + 1)" ( (binary_expression "piVar8[0x21] <= iVar5 + 1" (subscript_expression "piVar8[0x21]" identifier [ number_literal ]) <= (binary_expression "iVar5 + 1" identifier + number_literal)) )) (compound_statement "{\n          piVar8[9] = 1;\n        }" { (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) })) }) (else_clause "else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" else (compound_statement "{\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" { (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" identifier [ number_literal ]) = number_literal) ;) })))) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (if_statement "if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" if (parenthesized_expression "(0x2696 < iVar7)" ( (binary_expression "0x2696 < iVar7" number_literal < identifier) )) (compound_statement "{\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" { (if_statement "if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" if (parenthesized_expression "(iVar7 != 0x26df)" ( (binary_expression "iVar7 != 0x26df" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" { (if_statement "if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 == 0x2703)" ( (binary_expression "iVar7 == 0x2703" identifier == number_literal) )) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" { (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dd4a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d72e:\n          *piVar8 = 0x2703;" statement_identifier : (expression_statement "*piVar8 = 0x2703;" (assignment_expression "*piVar8 = 0x2703" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;) })) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (if_statement "if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Offer of public key accepted"" " string_content ") ))) ;) (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" ( (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "strlen((char *)piVar8[0x19]);" (call_expression "strlen((char *)piVar8[0x19])" identifier (argument_list "((char *)piVar8[0x19])" ( (cast_expression "(char *)piVar8[0x19]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x19]" identifier [ number_literal ])) ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (while_statement "while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" while (parenthesized_expression "(piVar8[0x17] != 0)" ( (binary_expression "piVar8[0x17] != 0" (subscript_expression "piVar8[0x17]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" { (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("SSH key passphrase");" (assignment_expression "uVar11 = FUN_0001caa0("SSH key passphrase")" identifier = (call_expression "FUN_0001caa0("SSH key passphrase")" identifier (argument_list "("SSH key passphrase")" ( (string_literal ""SSH key passphrase"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);" (assignment_expression "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" identifier = (call_expression "FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" identifier (argument_list "("Passphrase for key \"%.100s\": ",piVar8[0x19])" ( (string_literal ""Passphrase for key \"%.100s\": "" " string_content escape_sequence string_content escape_sequence string_content ") , (subscript_expression "piVar8[0x19]" identifier [ number_literal ]) )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" statement_identifier : (if_statement "if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002d72e;" goto statement_identifier ;) }))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 0) goto LAB_0002ea6c;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier = (cast_expression "(char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" ( (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" * (pointer_expression "*(int **)(iVar5 + 0x18)" * (cast_expression "(int **)(iVar5 + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 0x18)" ( (binary_expression "iVar5 + 0x18" identifier + number_literal) ))))) + number_literal) )))) ))))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c)" identifier = (cast_expression "(int *)FUN_000509f0(iVar7,pcVar16,local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000509f0(iVar7,pcVar16,local_2c)" identifier (argument_list "(iVar7,pcVar16,local_2c)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" { (if_statement "if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;" if (parenthesized_expression "(local_64 == (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 == (int *)PTR_DAT_000a4fac" identifier == (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002f5cf;" goto statement_identifier ;)) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;) })) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;" if (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" identifier != (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (goto_statement "goto LAB_0002ddec;" goto statement_identifier ;)) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier = (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c)" identifier = (cast_expression "(int *)FUN_000509f0(iVar7,0,local_2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000509f0(iVar7,0,local_2c)" identifier (argument_list "(iVar7,0,local_2c)" ( identifier , number_literal , identifier ))))) ;) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" if (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" ( (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" identifier != (cast_expression "(int *)PTR_DAT_000a4fac" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) )) (compound_statement "{\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" { (labeled_statement "LAB_0002ddec:\n            local_60 = local_2c;" statement_identifier : (expression_statement "local_60 = local_2c;" (assignment_expression "local_60 = local_2c" identifier = identifier) ;)) (if_statement "if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" if (parenthesized_expression "(local_64 != (int *)0x0)" ( (binary_expression "local_64 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" { (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,1)" identifier (argument_list "(local_2c[0]._1_3_,1)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);" (assignment_expression "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" identifier = (call_expression "(**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" (parenthesized_expression "(**(code **)(*local_64 + 0xc))" ( (pointer_expression "**(code **)(*local_64 + 0xc)" * (pointer_expression "*(code **)(*local_64 + 0xc)" * (cast_expression "(code **)(*local_64 + 0xc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 0xc)" ( (binary_expression "*local_64 + 0xc" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1],&local_30)" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) , (pointer_expression "&local_30" & identifier) )))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) + number_literal) + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) != 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar7 = iVar7 + -4;\n              }" { (expression_statement "iVar7 = iVar7 + -4;" (assignment_expression "iVar7 = iVar7 + -4" identifier = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) })) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1)" identifier = (cast_expression "(undefined1 *)FUN_0001c990(iVar7,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar7,1)" identifier (argument_list "(iVar7,1)" ( identifier , number_literal ))))) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }" { (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" identifier = number_literal) ;) (expression_statement "*puVar13 = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*puVar13 = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" * (cast_expression "(undefined1 *)(param_1 + 0xe7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe7)" ( (binary_expression "param_1 + 0xe7" identifier + number_literal) ))))) ;) (expression_statement "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6)" (subscript_expression "puVar13[1]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" * (cast_expression "(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe6)" ( (binary_expression "param_1 + 0xe6" identifier + number_literal) )))))) ;) (expression_statement "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (subscript_expression "puVar13[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4)" (subscript_expression "puVar13[3]" identifier [ number_literal ]) = (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "__dest = puVar13 + 4;" (assignment_expression "__dest = puVar13 + 4" identifier = (binary_expression "puVar13 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" else (compound_statement "{\n                local_54 = 0;\n                __dest = puVar13;\n              }" { (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "__dest = puVar13;" (assignment_expression "__dest = puVar13" identifier = identifier) ;) }))) (expression_statement "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" identifier (argument_list "(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" ( identifier , (cast_expression "(void *)(param_1 + 0xa4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))) , (pointer_expression "*(size_t *)(param_1 + 0xe4)" * (cast_expression "(size_t *)(param_1 + 0xe4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) ))) ;) (expression_statement "local_54 = local_54 + *(int *)(param_1 + 0xe4);" (assignment_expression "local_54 = local_54 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "local_54 + *(int *)(param_1 + 0xe4)" identifier + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);" (call_expression "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" identifier (argument_list "(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" ( (binary_expression "puVar13 + local_54" identifier + identifier) , (cast_expression "(void *)(((int *)piVar8[0x2e])[4] + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int *)piVar8[0x2e])[4] + 5)" ( (binary_expression "((int *)piVar8[0x2e])[4] + 5" (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ]) + number_literal) ))) , (binary_expression "*(int *)piVar8[0x2e] - 5" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) - number_literal) ))) ;) (if_statement "if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" if (parenthesized_expression "(iVar7 != local_54 + -5 + *(int *)piVar8[0x2e])" ( (binary_expression "iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]" identifier != (binary_expression "local_54 + -5 + *(int *)piVar8[0x2e]" (binary_expression "local_54 + -5" identifier + number_literal) + (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))))) )) (compound_statement "{\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" { (expression_statement "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");" (call_expression "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" identifier (argument_list "("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" ( (string_literal ""p == sigdata_len"" " string_content ") , (string_literal ""ssh.c"" " string_content ") , number_literal , (string_literal ""do_ssh2_authconn"" " string_content ") ))) ;) })) (expression_statement "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);" (assignment_expression "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" identifier = (call_expression "(**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" (parenthesized_expression "(**(code **)(*local_64 + 0x2c))" ( (pointer_expression "**(code **)(*local_64 + 0x2c)" * (pointer_expression "*(code **)(*local_64 + 0x2c)" * (cast_expression "(code **)(*local_64 + 0x2c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 0x2c)" ( (binary_expression "*local_64 + 0x2c" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1],puVar13,iVar7,local_60)" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (expression_statement "FUN_0002bf40(local_30,uVar17,local_2c[0]);" (call_expression "FUN_0002bf40(local_30,uVar17,local_2c[0])" identifier (argument_list "(local_30,uVar17,local_2c[0])" ( identifier , identifier , (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "FUN_0001d220(uVar17);" (call_expression "FUN_0001d220(uVar17)" identifier (argument_list "(uVar17)" ( identifier ))) ;) (expression_statement "FUN_0001d220(puVar13);" (call_expression "FUN_0001d220(puVar13)" identifier (argument_list "(puVar13)" ( identifier ))) ;) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent public key signature"" " string_content ") ))) ;) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "(**(code **)(*local_64 + 4))(local_64[1]);" (call_expression "(**(code **)(*local_64 + 4))(local_64[1])" (parenthesized_expression "(**(code **)(*local_64 + 4))" ( (pointer_expression "**(code **)(*local_64 + 4)" * (pointer_expression "*(code **)(*local_64 + 4)" * (cast_expression "(code **)(*local_64 + 4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_64 + 4)" ( (binary_expression "*local_64 + 4" (pointer_expression "*local_64" * identifier) + number_literal) ))))) )) (argument_list "(local_64[1])" ( (subscript_expression "local_64[1]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(local_64[2]);" (call_expression "FUN_0001d220(local_64[2])" identifier (argument_list "(local_64[2])" ( (subscript_expression "local_64[2]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_0001d220(local_64);" (call_expression "FUN_0001d220(local_64)" identifier (argument_list "(local_64)" ( identifier ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) })) (labeled_statement "LAB_0002f5cf:\n          FUN_00029500();" statement_identifier : (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;)) (expression_statement "strlen(local_2c[0]);" (call_expression "strlen(local_2c[0])" identifier (argument_list "(local_2c[0])" ( (subscript_expression "local_2c[0]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[1] = 2;" (assignment_expression "piVar8[1] = 2" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002f4f1;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" if (parenthesized_expression "(iVar7 == 0x25a0)" ( (binary_expression "iVar7 == 0x25a0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" { (if_statement "if (param_4 != (int *)0x0) goto LAB_0002d3e0;" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;)) (goto_statement "goto LAB_0002d310;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x2650) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x2650)" ( (binary_expression "iVar7 != 0x2650" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" { (if_statement "if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" { (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" if (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" ( (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" ( (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" { (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "CONCAT31(local_2c[0]._1_3_,1)" identifier (argument_list "(local_2c[0]._1_3_,1)" ( (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" identifier [ number_literal ]) . field_identifier) , number_literal ))))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" identifier = (cast_expression "(undefined4 *)piVar8[0x2e]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) ;) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" identifier = number_literal) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" identifier [ number_literal ]) = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" identifier = (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]))) + number_literal) + (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "piVar8[0x28] = iVar7;" (assignment_expression "piVar8[0x28] = iVar7" (subscript_expression "piVar8[0x28]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          iVar7 = iVar7 + 4;\n        }" { (expression_statement "iVar7 = iVar7 + 4;" (assignment_expression "iVar7 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) }) (else_clause "else {\n          piVar8[0x28] = iVar7 + -4;\n        }" else (compound_statement "{\n          piVar8[0x28] = iVar7 + -4;\n        }" { (expression_statement "piVar8[0x28] = iVar7 + -4;" (assignment_expression "piVar8[0x28] = iVar7 + -4" (subscript_expression "piVar8[0x28]" identifier [ number_literal ]) = (binary_expression "iVar7 + -4" identifier + number_literal)) ;) }))) (expression_statement "iVar7 = iVar7 + 5 + piVar8[0x25];" (assignment_expression "iVar7 = iVar7 + 5 + piVar8[0x25]" identifier = (binary_expression "iVar7 + 5 + piVar8[0x25]" (binary_expression "iVar7 + 5" identifier + number_literal) + (subscript_expression "piVar8[0x25]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[0x2a] = iVar7 + 4;" (assignment_expression "piVar8[0x2a] = iVar7 + 4" (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]) = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1)" identifier = (cast_expression "(undefined1 *)FUN_0001c990(iVar7 + 8,1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001c990(iVar7 + 8,1)" identifier (argument_list "(iVar7 + 8,1)" ( (binary_expression "iVar7 + 8" identifier + number_literal) , number_literal ))))) ;) (expression_statement "piVar8[0x2c] = (int)puVar13;" (assignment_expression "piVar8[0x2c] = (int)puVar13" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab);" (assignment_expression "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab)" (pointer_expression "*puVar13" * identifier) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0xab)" * (cast_expression "(undefined1 *)((int)piVar8 + 0xab)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xab)" ( (binary_expression "(int)piVar8 + 0xab" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);" (assignment_expression "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa)" (pointer_expression "*(char *)(piVar8[0x2c] + 1)" * (cast_expression "(char *)(piVar8[0x2c] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 1)" ( (binary_expression "piVar8[0x2c] + 1" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xaa)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0xaa)" * (cast_expression "(undefined2 *)((int)piVar8 + 0xaa)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xaa)" ( (binary_expression "(int)piVar8 + 0xaa" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);" (assignment_expression "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8)" (pointer_expression "*(char *)(piVar8[0x2c] + 2)" * (cast_expression "(char *)(piVar8[0x2c] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 2)" ( (binary_expression "piVar8[0x2c] + 2" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x2a] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x2a] >> 8)" ( (binary_expression "(uint)piVar8[0x2a] >> 8" (cast_expression "(uint)piVar8[0x2a]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x2a]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];" (assignment_expression "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a]" (pointer_expression "*(char *)(piVar8[0x2c] + 3)" * (cast_expression "(char *)(piVar8[0x2c] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 3)" ( (binary_expression "piVar8[0x2c] + 3" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x2a]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[0x2b] = piVar8[0x2c] + 5;" (assignment_expression "piVar8[0x2b] = piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd;" (assignment_expression "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd" (pointer_expression "*(undefined1 *)(piVar8[0x2c] + 4)" * (cast_expression "(undefined1 *)(piVar8[0x2c] + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2c] + 4)" ( (binary_expression "piVar8[0x2c] + 4" (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);" (assignment_expression "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97)" (pointer_expression "*(undefined1 *)piVar8[0x2b]" * (cast_expression "(undefined1 *)piVar8[0x2b]" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]))) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0x97)" * (cast_expression "(undefined1 *)((int)piVar8 + 0x97)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0x97)" ( (binary_expression "(int)piVar8 + 0x97" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0x96)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0x96)" * (cast_expression "(undefined2 *)((int)piVar8 + 0x96)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0x96)" ( (binary_expression "(int)piVar8 + 0x96" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x25] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x25] >> 8)" ( (binary_expression "(uint)piVar8[0x25] >> 8" (cast_expression "(uint)piVar8[0x25]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x25]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x25]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x25]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = iVar7 + 4;" (assignment_expression "piVar8[0x2b] = iVar7 + 4" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);" (call_expression "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" identifier (argument_list "((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" ( (cast_expression "(void *)(iVar7 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) ))) , (cast_expression "(void *)piVar8[0x22]" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x22]" identifier [ number_literal ])) , (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = piVar8[0x25] + iVar7;" (assignment_expression "piVar8[0x2b] = piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) + identifier)) ;) (expression_statement "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);" (assignment_expression "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3)" (pointer_expression "*(undefined1 *)(piVar8[0x25] + iVar7)" * (cast_expression "(undefined1 *)(piVar8[0x25] + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x25] + iVar7)" ( (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" identifier [ number_literal ]) + identifier) )))) = (pointer_expression "*(undefined1 *)((int)piVar8 + 0xa3)" * (cast_expression "(undefined1 *)((int)piVar8 + 0xa3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xa3)" ( (binary_expression "(int)piVar8 + 0xa3" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xa2)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)((int)piVar8 + 0xa2)" * (cast_expression "(undefined2 *)((int)piVar8 + 0xa2)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar8 + 0xa2)" ( (binary_expression "(int)piVar8 + 0xa2" (cast_expression "(int)piVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)piVar8[0x28] >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)piVar8[0x28] >> 8)" ( (binary_expression "(uint)piVar8[0x28] >> 8" (cast_expression "(uint)piVar8[0x28]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar8[0x28]" identifier [ number_literal ])) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)piVar8[0x28]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "piVar8[0x28]" identifier [ number_literal ]))) ;) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" identifier = (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) ;) (expression_statement "pvVar14 = (void *)(iVar7 + 4);" (assignment_expression "pvVar14 = (void *)(iVar7 + 4)" identifier = (cast_expression "(void *)(iVar7 + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" if (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" ( (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" ( (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" * (cast_expression "(byte *)(param_1 + 0x50)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" { (expression_statement "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*(undefined1 *)(iVar7 + 4)" * (cast_expression "(undefined1 *)(iVar7 + 4)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" * (cast_expression "(undefined1 *)(param_1 + 0xe7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe7)" ( (binary_expression "param_1 + 0xe7" identifier + number_literal) ))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" * (cast_expression "(char *)(piVar8[0x2b] + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" * (cast_expression "(undefined2 *)(param_1 + 0xe6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe6)" ( (binary_expression "param_1 + 0xe6" identifier + number_literal) )))))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" * (cast_expression "(char *)(piVar8[0x2b] + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" ( (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) >> number_literal) )))) ;) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4)" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" * (cast_expression "(char *)(piVar8[0x2b] + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" * (cast_expression "(undefined4 *)(param_1 + 0xe4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))))) ;) (expression_statement "pvVar14 = (void *)(piVar8[0x2b] + 4);" (assignment_expression "pvVar14 = (void *)(piVar8[0x2b] + 4)" identifier = (cast_expression "(void *)(piVar8[0x2b] + 4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 4)" ( (binary_expression "piVar8[0x2b] + 4" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) (expression_statement "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" identifier (argument_list "(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" ( identifier , (cast_expression "(void *)(param_1 + 0xa4)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa4)" ( (binary_expression "param_1 + 0xa4" identifier + number_literal) ))) , (pointer_expression "*(size_t *)(param_1 + 0xe4)" * (cast_expression "(size_t *)(param_1 + 0xe4)" ( (type_descriptor "size_t *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) ))) ;) (expression_statement "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);" (assignment_expression "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" identifier = (cast_expression "(void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" ( (binary_expression "*(int *)(param_1 + 0xe4) + piVar8[0x2b]" (pointer_expression "*(int *)(param_1 + 0xe4)" * (cast_expression "(int *)(param_1 + 0xe4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xe4)" ( (binary_expression "param_1 + 0xe4" identifier + number_literal) )))) + (subscript_expression "piVar8[0x2b]" identifier [ number_literal ])) )))) ;) (expression_statement "iVar7 = *(int *)piVar8[0x2e];" (assignment_expression "iVar7 = *(int *)piVar8[0x2e]" identifier = (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])))) ;) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" identifier = (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" ( (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])) )) [ number_literal ])) ;) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)pvVar14" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);" (call_expression "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" identifier (argument_list "(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" ( identifier , (cast_expression "(void *)(iVar5 + 5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 5)" ( (binary_expression "iVar5 + 5" identifier + number_literal) ))) , (binary_expression "iVar7 - 5" identifier - number_literal) ))) ;) (expression_statement "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);" (assignment_expression "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" identifier = (cast_expression "(undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" ( (binary_expression "piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]" (binary_expression "piVar8[0x2b] + -5" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) + (pointer_expression "*(int *)piVar8[0x2e]" * (cast_expression "(int *)piVar8[0x2e]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x2e]" identifier [ number_literal ])))) )))) ;) (expression_statement "piVar8[0x2b] = (int)puVar13;" (assignment_expression "piVar8[0x2b] = (int)puVar13" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) = (cast_expression "(int)puVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" * identifier) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 1) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 1) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 1)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 1)" ( (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 2) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 2)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 2)" ( (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 3) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 3)" * (cast_expression "(undefined1 *)(piVar8[0x2b] + 3)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0x2b] + 3)" ( (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" identifier = (call_expression "FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" identifier (argument_list "(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" ( (subscript_expression "piVar8[0x2c]" identifier [ number_literal ]) , (binary_expression "piVar8[0x2a] + 4" (subscript_expression "piVar8[0x2a]" identifier [ number_literal ]) + number_literal) , identifier , (binary_expression "piVar8 + 0x29" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" * (cast_expression "(int *)(param_1 + 0x6d0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x6d0)" ( (binary_expression "param_1 + 0x6d0" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar7 != 0) goto LAB_0002f388;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0002f388;" goto statement_identifier ;)) (goto_statement "goto LAB_0002e806;" goto statement_identifier ;) })) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002d6ed;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e2e0:\n    *piVar8 = 0x2650;" statement_identifier : (expression_statement "*piVar8 = 0x2650;" (assignment_expression "*piVar8 = 0x2650" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(iVar7 == 0x2917)" ( (binary_expression "iVar7 == 0x2917" identifier == number_literal) )) (compound_statement "{\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" { (if_statement "if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" { (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = "Server requested password change";" (assignment_expression "pcVar16 = "Server requested password change"" identifier = (string_literal ""Server requested password change"" " string_content ")) ;) (labeled_statement "joined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" statement_identifier : (if_statement "if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 == 0x3c)" ( (binary_expression "iVar7 == 0x3c" identifier == number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("New SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("New SSH password")" identifier = (call_expression "FUN_0001caa0("New SSH password")" identifier (argument_list "("New SSH password")" ( (string_literal ""New SSH password"" " string_content ") )))) ;) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = local_30;" (assignment_expression "pcVar16 = local_30" identifier = identifier) ;) (if_statement "if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }" if (parenthesized_expression "(local_30 == (char *)0x0)" ( (binary_expression "local_30 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar16 = "";\n        }" { (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16)" identifier = (call_expression "FUN_0001d000("%.*s",local_2c[0],pcVar16)" identifier (argument_list "("%.*s",local_2c[0],pcVar16)" ( (string_literal ""%.*s"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(piVar8[0xf] + 0x10) = 1;" (assignment_expression "*(undefined4 *)(piVar8[0xf] + 0x10) = 1" (pointer_expression "*(undefined4 *)(piVar8[0xf] + 0x10)" * (cast_expression "(undefined4 *)(piVar8[0xf] + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar8[0xf] + 0x10)" ( (binary_expression "piVar8[0xf] + 0x10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");" (assignment_expression "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ")" identifier = (call_expression "FUN_0001caa0("Current password (blank for previously entered password): ")" identifier (argument_list "("Current password (blank for previously entered password): ")" ( (string_literal ""Current password (blank for previously entered password): "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "uVar11 = FUN_0001caa0("Enter new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Enter new password: ")" identifier = (call_expression "FUN_0001caa0("Enter new password: ")" identifier (argument_list "("Enter new password: ")" ( (string_literal ""Enter new password: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (expression_statement "uVar11 = FUN_0001caa0("Confirm new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Confirm new password: ")" identifier = (call_expression "FUN_0001caa0("Confirm new password: ")" identifier (argument_list "("Confirm new password: ")" ( (string_literal ""Confirm new password: "" " string_content ") )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" identifier (argument_list "(piVar8[0xf],uVar11,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , number_literal ))) ;) (while_statement "while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],0,0)" identifier (argument_list "(piVar8[0xf],0,0)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , number_literal , number_literal )))) ;) (labeled_statement "LAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" statement_identifier : (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" if (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" { (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e5f0;" goto statement_identifier ;) }))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" { (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0002ea71;" goto statement_identifier ;) })) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" identifier = (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) ;) (if_statement "if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" if (parenthesized_expression "(**(char **)(*piVar9 + 8) != '\0')" ( (binary_expression "**(char **)(*piVar9 + 8) != '\0'" (pointer_expression "**(char **)(*piVar9 + 8)" * (pointer_expression "*(char **)(*piVar9 + 8)" * (cast_expression "(char **)(*piVar9 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*piVar9 + 8)" ( (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" * identifier) + number_literal) ))))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" { (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier = (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" identifier (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" ( (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" * (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" ( (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" * (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) + number_literal) )))) )))) ;) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" identifier = (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" * (cast_expression "(int **)(piVar8[0xf] + 0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar8[0xf] + 0x18)" ( (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) + number_literal) ))))) ;) })) (expression_statement "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));" (assignment_expression "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" identifier = (call_expression "strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" identifier (argument_list "(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" ( (pointer_expression "*(char **)(piVar9[1] + 8)" * (cast_expression "(char **)(piVar9[1] + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9[1] + 8)" ( (binary_expression "piVar9[1] + 8" (subscript_expression "piVar9[1]" identifier [ number_literal ]) + number_literal) )))) , (pointer_expression "*(char **)(piVar9[2] + 8)" * (cast_expression "(char **)(piVar9[2] + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar9[2] + 8)" ( (binary_expression "piVar9[2] + 8" (subscript_expression "piVar9[2]" identifier [ number_literal ]) + number_literal) )))) )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent new password")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Sent new password"" " string_content ") ))) ;) (labeled_statement "LAB_0002e515:\n        *piVar8 = 0x2999;" statement_identifier : (expression_statement "*piVar8 = 0x2999;" (assignment_expression "*piVar8 = 0x2999" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) }))) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" identifier = (cast_expression "(char *)piVar8[0x12]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar8[0x12]" identifier [ number_literal ]))) ;) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" identifier = (call_expression "strlen(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier )))) ;) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" identifier (argument_list "(pcVar16,sVar4)" ( identifier , identifier ))) ;) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" identifier (argument_list "(piVar8[0x12])" ( (subscript_expression "piVar8[0x12]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" identifier = (subscript_expression "piVar8[3]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002d2f8;" goto statement_identifier ;) })) (labeled_statement "LAB_0002dd1c:\n    *piVar8 = 0x2917;" statement_identifier : (expression_statement "*piVar8 = 0x2917;" (assignment_expression "*piVar8 = 0x2917" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" if (parenthesized_expression "(0x2917 < iVar7)" ( (binary_expression "0x2917 < iVar7" number_literal < identifier) )) (compound_statement "{\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" { (if_statement "if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" if (parenthesized_expression "(iVar7 == 0x2a03)" ( (binary_expression "iVar7 == 0x2a03" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002e0c6;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002e0c6;" goto statement_identifier ;)) (if_statement "if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" if (parenthesized_expression "(param_4[2] - 0x5bU < 2)" ( (binary_expression "param_4[2] - 0x5bU < 2" (binary_expression "param_4[2] - 0x5bU" (subscript_expression "param_4[2]" identifier [ number_literal ]) - number_literal) < number_literal) )) (compound_statement "{\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }" { (expression_statement "iVar5 = FUN_00026ae0();" (assignment_expression "iVar5 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (if_statement "if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" if (parenthesized_expression "(iVar5 == *(int *)(iVar7 + 8))" ( (binary_expression "iVar5 == *(int *)(iVar7 + 8)" identifier == (pointer_expression "*(int *)(iVar7 + 8)" * (cast_expression "(int *)(iVar7 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) ))))) )) (compound_statement "{\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" { (if_statement "if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" if (parenthesized_expression "(param_4[2] == 0x5c)" ( (binary_expression "param_4[2] == 0x5c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" { (expression_statement "uVar11 = FUN_000283a0();" (assignment_expression "uVar11 = FUN_000283a0()" identifier = (call_expression "FUN_000283a0()" identifier (argument_list "()" ( )))) ;) (expression_statement "FUN_0001d000("Server refused to open main channel: %s",uVar11);" (call_expression "FUN_0001d000("Server refused to open main channel: %s",uVar11)" identifier (argument_list "("Server refused to open main channel: %s",uVar11)" ( (string_literal ""Server refused to open main channel: %s"" " string_content ") , identifier ))) ;) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" identifier (argument_list "(uVar11)" ( identifier ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" * (cast_expression "(undefined4 *)(iVar7 + 0x2c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x2c)" ( (binary_expression "iVar7 + 0x2c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" identifier = (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) ))))) ;) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" * (cast_expression "(undefined4 *)(iVar7 + 0x30)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x30)" ( (binary_expression "iVar7 + 0x30" identifier + number_literal) )))) = identifier) ;) (expression_statement "FUN_00061e70(*(undefined4 *)(param_1 + 0x110));" (call_expression "FUN_00061e70(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))) ;) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Opened main channel"" " string_content ") ))) ;) (goto_statement "goto LAB_0002da71;" goto statement_identifier ;) })) (expression_statement "pcVar16 = "Server\'s response to main channel open cited wrong channel number";" (assignment_expression "pcVar16 = "Server\'s response to main channel open cited wrong channel number"" identifier = (string_literal ""Server\'s response to main channel open cited wrong channel number"" " string_content escape_sequence string_content ")) ;) }) (else_clause "else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" else (compound_statement "{\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" { (expression_statement "pcVar16 = "Server sent strange packet %d in response to main channel open request";" (assignment_expression "pcVar16 = "Server sent strange packet %d in response to main channel open request"" identifier = (string_literal ""Server sent strange packet %d in response to main channel open request"" " string_content ")) ;) }))) }) (else_clause "else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" else (compound_statement "{\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" { (if_statement "if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" if (parenthesized_expression "(iVar7 < 0x2a04)" ( (binary_expression "iVar7 < 0x2a04" identifier < number_literal) )) (compound_statement "{\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" { (if_statement "if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" if (parenthesized_expression "(iVar7 == 0x2956)" ( (binary_expression "iVar7 == 0x2956" identifier == number_literal) )) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" { (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002e42a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002e5f0:\n          *piVar8 = 0x2956;" statement_identifier : (expression_statement "*piVar8 = 0x2956;" (assignment_expression "*piVar8 = 0x2956" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" if (parenthesized_expression "(iVar7 == 0x2999)" ( (binary_expression "iVar7 == 0x2999" identifier == number_literal) )) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" { (if_statement "if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" { (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" identifier = (subscript_expression "param_4[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = "Server rejected new password";" (assignment_expression "pcVar16 = "Server rejected new password"" identifier = (string_literal ""Server rejected new password"" " string_content ")) ;) (goto_statement "goto joined_r0x0002e302;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e515;" goto statement_identifier ;) })) (labeled_statement "LAB_0002d8a4:\n        *piVar8 = 0;" statement_identifier : (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" if (parenthesized_expression "(iVar7 != 0x2a90)" ( (binary_expression "iVar7 != 0x2a90" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" { (if_statement "if (iVar7 != 0x2abd) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x2abd)" ( (binary_expression "iVar7 != 0x2abd" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" { (expression_statement "pcVar16 = "Strange packet received: type %d";" (assignment_expression "pcVar16 = "Strange packet received: type %d"" identifier = (string_literal ""Strange packet received: type %d"" " string_content ")) ;) (goto_statement "goto LAB_0002dba9;" goto statement_identifier ;) })) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }" if (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" ( (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" * (cast_expression "(int *)(param_1 + 0x128)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x128)" ( (binary_expression "param_1 + 0x128" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n          FUN_00035a60();\n        }" { (expression_statement "FUN_00035a60();" (call_expression "FUN_00035a60()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0002db95;" goto statement_identifier ;) })) (if_statement "if (param_4 == (int *)0x0) goto LAB_0002f2ad;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002f2ad;" goto statement_identifier ;)) (if_statement "if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" if (parenthesized_expression "(param_4[2] == 99)" ( (binary_expression "param_4[2] == 99" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Started a shell/command"" " string_content ") ))) ;) (goto_statement "goto LAB_0002db48;" goto statement_identifier ;) })) (if_statement "if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" if (parenthesized_expression "(param_4[2] == 100)" ( (binary_expression "param_4[2] == 100" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }" { (if_statement "if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" if (parenthesized_expression "((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           )" ( (binary_expression "(*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" ( (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" * (cast_expression "(int *)(param_1 + 0x174)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) == number_literal) )) && (parenthesized_expression "(pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" ( (comma_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0'" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" identifier = (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" identifier (argument_list "(*(undefined4 *)(param_1 + 0x248),0x15)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x248)" * (cast_expression "(undefined4 *)(param_1 + 0x248)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x248)" ( (binary_expression "param_1 + 0x248" identifier + number_literal) )))) , number_literal ))))) , (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" { (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""Primary command failed; attempting fallback"" " string_content ") ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x174) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x174) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x174)" * (cast_expression "(undefined4 *)(param_1 + 0x174)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x174)" ( (binary_expression "param_1 + 0x174" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002feab;" goto statement_identifier ;) })) (expression_statement "pcVar16 = "Server refused to start a shell/command";" (assignment_expression "pcVar16 = "Server refused to start a shell/command"" identifier = (string_literal ""Server refused to start a shell/command"" " string_content ")) ;) }) (else_clause "else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" else (compound_statement "{\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" { (expression_statement "pcVar16 = "Unexpected response to shell/command request: packet type %d";" (assignment_expression "pcVar16 = "Unexpected response to shell/command request: packet type %d"" identifier = (string_literal ""Unexpected response to shell/command request: packet type %d"" " string_content ")) ;) }))) }))) (labeled_statement "LAB_0002dba9:\n    FUN_0001d000(pcVar16);" statement_identifier : (expression_statement "FUN_0001d000(pcVar16);" (call_expression "FUN_0001d000(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;)) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" identifier (argument_list "()" ( ))) ;) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" * identifier) = number_literal) ;) (goto_statement "goto LAB_0002d320;" goto statement_identifier ;) })) (if_statement "if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" if (parenthesized_expression "(iVar7 == 0x28a4)" ( (binary_expression "iVar7 == 0x28a4" identifier == number_literal) )) (compound_statement "{\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }" { (if_statement "if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" statement_identifier : (if_statement "if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" if (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) (compound_statement "{\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" { (if_statement "if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" { (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (goto_statement "goto LAB_0002ea6c;" goto statement_identifier ;) })) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" identifier = (call_expression "FUN_00029d20()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" identifier (argument_list "()" ( ))) ;) (if_statement "if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" if (parenthesized_expression "(0 < piVar8[0x10])" ( (binary_expression "0 < piVar8[0x10]" number_literal < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) (compound_statement "{\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" { (do_statement "do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);" do (compound_statement "{\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(iVar5 < piVar8[0x10])" ( (binary_expression "iVar5 < piVar8[0x10]" identifier < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" identifier (argument_list "(piVar8[0xf])" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) ))) ;) (goto_statement "goto LAB_0002f35a;" goto statement_identifier ;) }))) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*piVar8 = 0x28a4;" (assignment_expression "*piVar8 = 0x28a4" (pointer_expression "*piVar8" * identifier) = number_literal) ;) }) (else_clause "else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" else (compound_statement "{\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" { (if_statement "if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" if (parenthesized_expression "(iVar7 < 0x28a5)" ( (binary_expression "iVar7 < 0x28a5" identifier < number_literal) )) (compound_statement "{\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" { (if_statement "if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" if (parenthesized_expression "(iVar7 == 0x2807)" ( (binary_expression "iVar7 == 0x2807" identifier == number_literal) )) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fcf7;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0002fcf7;" goto statement_identifier ;)) (if_statement "if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" if (parenthesized_expression "(param_4[2] == 0x3d)" ( (binary_expression "param_4[2] == 0x3d" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" identifier [ number_literal ]) = (cast_expression "(int)local_30" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" identifier = (subscript_expression "piVar8[0x39]" identifier [ number_literal ])) ;) (if_statement "if (iVar7 == 1) goto LAB_0002efad;" if (parenthesized_expression "(iVar7 == 1)" ( (binary_expression "iVar7 == 1" identifier == number_literal) )) (goto_statement "goto LAB_0002efad;" goto statement_identifier ;)) (goto_statement "goto LAB_0002f049;" goto statement_identifier ;) })) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) , (string_literal ""GSSAPI authentication - bad server response"" " string_content ") ))) ;) (expression_statement "piVar8[0x39] = 4;" (assignment_expression "piVar8[0x39] = 4" (subscript_expression "piVar8[0x39]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0002e970;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x284b) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x284b)" ( (binary_expression "iVar7 != 0x284b" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (if_statement "if (param_4[2] == 0x3c) goto LAB_0002eda0;" if (parenthesized_expression "(param_4[2] == 0x3c)" ( (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_0002eda0;" goto statement_identifier ;)) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[1] = 7;" (assignment_expression "piVar8[1] = 7" (subscript_expression "piVar8[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar8[0xc] = 1;" (assignment_expression "piVar8[0xc] = 1" (subscript_expression "piVar8[0xc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002e166;" goto statement_identifier ;) })) (if_statement "if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" if (parenthesized_expression "(iVar7 != 0x28ca)" ( (binary_expression "iVar7 != 0x28ca" identifier != number_literal) )) (compound_statement "{\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" { (if_statement "if (iVar7 != 0x28e8) goto LAB_0002d8a4;" if (parenthesized_expression "(iVar7 != 0x28e8)" ( (binary_expression "iVar7 != 0x28e8" identifier != number_literal) )) (goto_statement "goto LAB_0002d8a4;" goto statement_identifier ;)) (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" { (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier = (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" identifier (argument_list "(piVar8[0xf],param_2,param_3)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" * (cast_expression "(undefined4 *)(param_1 + 0x100)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x100)" ( (binary_expression "param_1 + 0x100" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0002dc60;" goto statement_identifier ;) })) (goto_statement "goto LAB_0002d68e;" goto statement_identifier ;) })) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" { (if_statement "if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" if (parenthesized_expression "(param_4[2] != 0x3c)" ( (binary_expression "param_4[2] != 0x3c" (subscript_expression "param_4[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" { (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0002d3e0;" goto statement_identifier ;) })) (labeled_statement "LAB_0002eda0:\n      FUN_000273d0();" statement_identifier : (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;)) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier = (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" identifier (argument_list "(*(undefined4 *)(param_1 + 0x110))" ( (pointer_expression "*(undefined4 *)(param_1 + 0x110)" * (cast_expression "(undefined4 *)(param_1 + 0x110)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x110)" ( (binary_expression "param_1 + 0x110" identifier + number_literal) )))) ))))) ;) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) = (cast_expression "(int)puVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" * identifier) = number_literal) ;) (expression_statement "iVar7 = FUN_00026ae0();" (assignment_expression "iVar7 = FUN_00026ae0()" identifier = (call_expression "FUN_00026ae0()" identifier (argument_list "()" ( )))) ;) (expression_statement "piVar8[0x10] = iVar7;" (assignment_expression "piVar8[0x10] = iVar7" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" if (parenthesized_expression "(0 < iVar7)" ( (binary_expression "0 < iVar7" number_literal < identifier) )) (compound_statement "{\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (do_statement "do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);" do (compound_statement "{\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        }" { (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar5 = param_4[6];" (assignment_expression "iVar5 = param_4[6]" identifier = (subscript_expression "param_4[6]" identifier [ number_literal ])) ;) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" identifier = false) ;) (if_statement "if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" if (parenthesized_expression "(*param_4 != iVar5 && -1 < *param_4 - iVar5)" ( (binary_expression "*param_4 != iVar5 && -1 < *param_4 - iVar5" (binary_expression "*param_4 != iVar5" (pointer_expression "*param_4" * identifier) != identifier) && (binary_expression "-1 < *param_4 - iVar5" number_literal < (binary_expression "*param_4 - iVar5" (pointer_expression "*param_4" * identifier) - identifier))) )) (compound_statement "{\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" { (expression_statement "bVar23 = *(char *)(param_4[5] + iVar5) != '\0';" (assignment_expression "bVar23 = *(char *)(param_4[5] + iVar5) != '\0'" identifier = (binary_expression "*(char *)(param_4[5] + iVar5) != '\0'" (pointer_expression "*(char *)(param_4[5] + iVar5)" * (cast_expression "(char *)(param_4[5] + iVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4[5] + iVar5)" ( (binary_expression "param_4[5] + iVar5" (subscript_expression "param_4[5]" identifier [ number_literal ]) + identifier) )))) != (char_literal "'\0'" ' escape_sequence '))) ;) (expression_statement "param_4[6] = iVar5 + 1;" (assignment_expression "param_4[6] = iVar5 + 1" (subscript_expression "param_4[6]" identifier [ number_literal ]) = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) })) (if_statement "if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" if (parenthesized_expression "(local_2c[0] == (char *)0x0)" ( (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" identifier [ number_literal ]) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" { (expression_statement "local_30 = s_<server_failed_to_send_prompt>__000a5120;" (assignment_expression "local_30 = s_<server_failed_to_send_prompt>__000a5120" identifier = (binary_expression "s_<server_failed_to_send_prompt>__000a5120" (binary_expression "s_<server_failed_to_send_prompt" identifier < identifier) > identifier)) ;) (expression_statement "local_2c[0] = (char *)0x20;" (assignment_expression "local_2c[0] = (char *)0x20" (subscript_expression "local_2c[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x20" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30)" identifier = (call_expression "FUN_0001d000("%.*s",local_2c[0],local_30)" identifier (argument_list "("%.*s",local_2c[0],local_30)" ( (string_literal ""%.*s"" " string_content ") , (subscript_expression "local_2c[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,bVar23);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,bVar23)" identifier (argument_list "(piVar8[0xf],uVar11,bVar23)" ( (subscript_expression "piVar8[0xf]" identifier [ number_literal ]) , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar7 < piVar8[0x10])" ( (binary_expression "iVar7 < piVar8[0x10]" identifier < (subscript_expression "piVar8[0x10]" identifier [ number_literal ])) )) ;) })) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (if_statement "if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }" { (expression_statement "uVar11 = FUN_0001caa0("SSH server authentication");" (assignment_expression "uVar11 = FUN_0001caa0("SSH server authentication")" identifier = (call_expression "FUN_0001caa0("SSH server authentication")" identifier (argument_list "("SSH server authentication")" ( (string_literal ""SSH server authentication"" " string_content ") )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" else (compound_statement "{\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" { (expression_statement "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);" (assignment_expression "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48)" identifier = (call_expression "FUN_0001d000("SSH server: %.*s",local_3c,local_48)" identifier (argument_list "("SSH server: %.*s",local_3c,local_48)" ( (string_literal ""SSH server: %.*s"" " string_content ") , identifier , identifier )))) ;) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" * (cast_expression "(undefined4 *)(iVar7 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 4)" ( (binary_expression "iVar7 + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 8) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 8)" * (cast_expression "(undefined4 *)(iVar7 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 8)" ( (binary_expression "iVar7 + 8" identifier + number_literal) )))) = number_literal) ;) }))) (if_statement "if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" if (parenthesized_expression "(piVar8[0x10] == 0 && local_3c == 0)" ( (binary_expression "piVar8[0x10] == 0 && local_3c == 0" (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" identifier [ number_literal ]) == number_literal) && (binary_expression "local_3c == 0" identifier == number_literal)) )) (compound_statement "{\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }" { (if_statement "if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" { (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (goto_statement "goto LAB_0002fa3b;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" else (compound_statement "{\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" { (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" identifier = (pointer_expression "&DAT_0007148e" & identifier)) ;) (if_statement "if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n          puVar15 = &DAT_0006f2ee;\n        }" { (expression_statement "puVar15 = &DAT_0006f2ee;" (assignment_expression "puVar15 = &DAT_0006f2ee" identifier = (pointer_expression "&DAT_0006f2ee" & identifier)) ;) })) (labeled_statement "LAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" statement_identifier : (expression_statement "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" (assignment_expression "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" identifier = (call_expression "FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" identifier (argument_list "("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" ( (string_literal ""Using keyboard-interactive authentication.%s%.*s"" " string_content ") , identifier , identifier , identifier )))) ;)) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" * (cast_expression "(undefined4 *)(iVar7 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" identifier = (subscript_expression "piVar8[0xf]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" * (cast_expression "(undefined4 *)(iVar7 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0x10)" ( (binary_expression "iVar7 + 0x10" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "iVar7 = FUN_000675f0(iVar7,0,0);" (assignment_expression "iVar7 = FUN_000675f0(iVar7,0,0)" identifier = (call_expression "FUN_000675f0(iVar7,0,0)" identifier (argument_list "(iVar7,0,0)" ( identifier , number_literal , number_literal )))) ;) (goto_statement "goto LAB_0002f51a;" goto statement_identifier ;) })) (labeled_statement "LAB_0002f35a:\n    *piVar8 = 0x28ca;" statement_identifier : (expression_statement "*piVar8 = 0x28ca;" (assignment_expression "*piVar8 = 0x28ca" (pointer_expression "*piVar8" * identifier) = number_literal) ;)) }))) (labeled_statement "LAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" statement_identifier : (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\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    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) }))) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) ))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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 ( (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 ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , IDENT , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))))) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (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 IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , IDENT , LIT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) - IDENT) )) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (break_statement break ;)) })) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence escape_sequence ") , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })))) (labeled_statement statement_identifier : (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) }))) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , LIT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , LIT ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }))) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) - IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) })))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) ))) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT , LIT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , IDENT , IDENT ))) ;) }))))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == (char_literal ' escape_sequence ')) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) IDENT)) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + IDENT)) )) ;) })) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == IDENT) || (binary_expression (binary_expression (pointer_expression * IDENT) - IDENT) < LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) ))))) , (comma_expression (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) , (binary_expression IDENT == (char_literal ' escape_sequence ')))) ))) )) (compound_statement { (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 (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") , LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) }))) })))))))) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) )))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (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 (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;)) })) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (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 IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_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 IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_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 { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;)) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) ))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) , (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < (parenthesized_expression ( (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) )))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content escape_sequence string_content ") ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (binary_expression (binary_expression (binary_expression (binary_expression IDENT >> LIT) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) >> LIT)) | (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) << LIT)) | (binary_expression IDENT << LIT)) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })))) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (while_statement while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) )))) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_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 ]) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT + IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ]) + LIT) ))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) - LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression (binary_expression IDENT + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT , (string_literal " string_content ") ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (field_expression (subscript_expression IDENT [ LIT ]) . field_identifier) , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) , (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (subscript_expression IDENT [ LIT ])) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) )) [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (binary_expression IDENT - LIT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , LIT ))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , LIT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) ))))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content escape_sequence string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;)) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT ))))) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) != IDENT) && (binary_expression LIT < (binary_expression (pointer_expression * IDENT) - IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) != (char_literal ' escape_sequence '))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < IDENT) > IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (binary_expression IDENT == LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT , IDENT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_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 { (return_statement return ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void __regparm3 FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)\n\n{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" (primitive_type "void") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_0002d230(int param_1,undefined4 param_2,int param_3,int *param_4)" (identifier "FUN_0002d230") (parameter_list "(int param_1,undefined4 param_2,int param_3,int *param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  char cVar1;\n  code *pcVar2;\n  uint uVar3;\n  size_t sVar4;\n  int iVar5;\n  int iVar6;\n  int iVar7;\n  int *piVar8;\n  undefined1 *__dest;\n  int *piVar9;\n  undefined4 *puVar10;\n  undefined4 uVar11;\n  uint uVar12;\n  undefined1 *puVar13;\n  void *pvVar14;\n  undefined *puVar15;\n  char *pcVar16;\n  undefined4 uVar17;\n  int iVar18;\n  undefined4 extraout_ECX;\n  undefined4 extraout_ECX_00;\n  undefined4 extraout_ECX_01;\n  uint *puVar19;\n  undefined4 extraout_EDX;\n  uint *puVar20;\n  char *pcVar21;\n  uint *puVar22;\n  int in_GS_OFFSET;\n  bool bVar23;\n  undefined8 uVar24;\n  int *local_64;\n  char **local_60;\n  int local_54;\n  undefined4 local_48;\n  undefined4 local_44;\n  int local_3c;\n  int local_38;\n  int local_34;\n  char *local_30;\n  char *local_2c [2];\n  undefined4 local_24;\n  int local_20;\n  undefined4 uStack_14;\n  \n  uStack_14 = 0x2d23b;\n  piVar8 = *(int **)(param_1 + 0x1d0);\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }\n  iVar7 = *piVar8;\n  if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }\n  if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }\n  if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }\nLAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_0006dad0();\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "code *pcVar2;" (type_identifier "code") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "size_t sVar4;" (primitive_type "size_t") (identifier "sVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined1 *__dest;" (type_identifier "undefined1") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "undefined4 *puVar10;" (type_identifier "undefined4") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined4 uVar11;" (type_identifier "undefined4") (identifier "uVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined1 *puVar13;" (type_identifier "undefined1") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "void *pvVar14;" (primitive_type "void") (pointer_declarator "*pvVar14" (* "*") (identifier "pvVar14")) (; ";")) (declaration "undefined *puVar15;" (type_identifier "undefined") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined4 extraout_ECX;" (type_identifier "undefined4") (identifier "extraout_ECX") (; ";")) (declaration "undefined4 extraout_ECX_00;" (type_identifier "undefined4") (identifier "extraout_ECX_00") (; ";")) (declaration "undefined4 extraout_ECX_01;" (type_identifier "undefined4") (identifier "extraout_ECX_01") (; ";")) (declaration "uint *puVar19;" (type_identifier "uint") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined4 extraout_EDX;" (type_identifier "undefined4") (identifier "extraout_EDX") (; ";")) (declaration "uint *puVar20;" (type_identifier "uint") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "char *pcVar21;" (primitive_type "char") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "uint *puVar22;" (type_identifier "uint") (pointer_declarator "*puVar22" (* "*") (identifier "puVar22")) (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar23;" (primitive_type "bool") (identifier "bVar23") (; ";")) (declaration "undefined8 uVar24;" (type_identifier "undefined8") (identifier "uVar24") (; ";")) (declaration "int *local_64;" (primitive_type "int") (pointer_declarator "*local_64" (* "*") (identifier "local_64")) (; ";")) (declaration "char **local_60;" (primitive_type "char") (pointer_declarator "**local_60" (* "*") (pointer_declarator "*local_60" (* "*") (identifier "local_60"))) (; ";")) (declaration "int local_54;" (primitive_type "int") (identifier "local_54") (; ";")) (declaration "undefined4 local_48;" (type_identifier "undefined4") (identifier "local_48") (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "int local_34;" (primitive_type "int") (identifier "local_34") (; ";")) (declaration "char *local_30;" (primitive_type "char") (pointer_declarator "*local_30" (* "*") (identifier "local_30")) (; ";")) (declaration "char *local_2c [2];" (primitive_type "char") (pointer_declarator "*local_2c [2]" (* "*") (array_declarator "local_2c [2]" (identifier "local_2c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "uStack_14 = 0x2d23b;" (assignment_expression "uStack_14 = 0x2d23b" (identifier "uStack_14") (= "=") (number_literal "0x2d23b")) (; ";")) (expression_statement "piVar8 = *(int **)(param_1 + 0x1d0);" (assignment_expression "piVar8 = *(int **)(param_1 + 0x1d0)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(param_1 + 0x1d0)" (* "*") (cast_expression "(int **)(param_1 + 0x1d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1d0)" (( "(") (binary_expression "param_1 + 0x1d0" (identifier "param_1") (+ "+") (number_literal "0x1d0")) () ")"))))) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (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")) () ")"))))) (; ";")) (if_statement "if (piVar8 == (int *)0x0) {\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" (if "if") (parenthesized_expression "(piVar8 == (int *)0x0)" (( "(") (binary_expression "piVar8 == (int *)0x0" (identifier "piVar8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar8 = (int *)FUN_0001c990(1,0xe8);\n    *(int **)(param_1 + 0x1d0) = piVar8;\n    *piVar8 = 0;\nLAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);\n    *(code **)(param_1 + 0x288) = FUN_0003beb0;\n    *(code **)(param_1 + 0x338) = FUN_0003beb0;\n    *(code **)(param_1 + 0x33c) = FUN_0003beb0;\n    *(code **)(param_1 + 0x340) = FUN_0003beb0;\n    *(code **)(param_1 + 0x344) = FUN_0003beb0;\n    *(code **)(param_1 + 0x360) = FUN_0003beb0;\n    *(code **)(param_1 + 0x364) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;\n    *(code **)(param_1 + 1000) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;\n    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;\n    piVar8[2] = 0;\n    piVar8[0xe] = 0;\n    piVar8[0xd] = 0;\n    piVar8[0x1c] = 0;\n    piVar8[0xb] = 0;\n    if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }\nLAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);\n    *(code **)(param_1 + 0x344) = FUN_0002bdb0;\n    piVar8[0x14] = 0;\n    if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }\nLAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;\n    if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }\n    if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }\n    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }\n    uVar11 = FUN_000612a0(FUN_00026aa0);\n    *(undefined4 *)(param_1 + 0x124) = uVar11;\n    *(code **)(param_1 + 0x3e4) = FUN_000373f0;\n    *(code **)(param_1 + 0x3b0) = FUN_00034300;\n    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);\n    if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }\n    piVar9 = (int *)FUN_0001c990(1,0x5c);\n    *(int **)(param_1 + 0x128) = piVar9;\n    *piVar9 = param_1;\n    FUN_0002c3f0();\n    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n    if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }\nLAB_0002e0c6:\n    *piVar8 = 0x2a03;\n    goto LAB_0002d320;\n  }" ({ "{") (expression_statement "piVar8 = (int *)FUN_0001c990(1,0xe8);" (assignment_expression "piVar8 = (int *)FUN_0001c990(1,0xe8)" (identifier "piVar8") (= "=") (cast_expression "(int *)FUN_0001c990(1,0xe8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c990(1,0xe8)" (identifier "FUN_0001c990") (argument_list "(1,0xe8)" (( "(") (number_literal "1") (, ",") (number_literal "0xe8") () ")"))))) (; ";")) (expression_statement "*(int **)(param_1 + 0x1d0) = piVar8;" (assignment_expression "*(int **)(param_1 + 0x1d0) = piVar8" (pointer_expression "*(int **)(param_1 + 0x1d0)" (* "*") (cast_expression "(int **)(param_1 + 0x1d0)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x1d0)" (( "(") (binary_expression "param_1 + 0x1d0" (identifier "param_1") (+ "+") (number_literal "0x1d0")) () ")")))) (= "=") (identifier "piVar8")) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002d8d0:\n    iVar7 = *(int *)(param_1 + 0xec);" (statement_identifier "LAB_0002d8d0") (: ":") (expression_statement "iVar7 = *(int *)(param_1 + 0xec);" (assignment_expression "iVar7 = *(int *)(param_1 + 0xec)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0xec)" (* "*") (cast_expression "(int *)(param_1 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xec)" (( "(") (binary_expression "param_1 + 0xec" (identifier "param_1") (+ "+") (number_literal "0xec")) () ")"))))) (; ";"))) (expression_statement "*(code **)(param_1 + 0x288) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x288) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x288)" (* "*") (cast_expression "(code **)(param_1 + 0x288)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x288)" (( "(") (binary_expression "param_1 + 0x288" (identifier "param_1") (+ "+") (number_literal "0x288")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x338) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x338) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x338)" (* "*") (cast_expression "(code **)(param_1 + 0x338)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x338)" (( "(") (binary_expression "param_1 + 0x338" (identifier "param_1") (+ "+") (number_literal "0x338")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x33c) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x33c) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x33c)" (* "*") (cast_expression "(code **)(param_1 + 0x33c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x33c)" (( "(") (binary_expression "param_1 + 0x33c" (identifier "param_1") (+ "+") (number_literal "0x33c")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x340) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x340) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x340)" (* "*") (cast_expression "(code **)(param_1 + 0x340)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x340)" (( "(") (binary_expression "param_1 + 0x340" (identifier "param_1") (+ "+") (number_literal "0x340")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x344)" (* "*") (cast_expression "(code **)(param_1 + 0x344)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x344)" (( "(") (binary_expression "param_1 + 0x344" (identifier "param_1") (+ "+") (number_literal "0x344")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x360) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x360) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x360)" (* "*") (cast_expression "(code **)(param_1 + 0x360)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x360)" (( "(") (binary_expression "param_1 + 0x360" (identifier "param_1") (+ "+") (number_literal "0x360")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x364) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x364) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x364)" (* "*") (cast_expression "(code **)(param_1 + 0x364)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x364)" (( "(") (binary_expression "param_1 + 0x364" (identifier "param_1") (+ "+") (number_literal "0x364")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b0)" (* "*") (cast_expression "(code **)(param_1 + 0x3b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3b0)" (( "(") (binary_expression "param_1 + 0x3b0" (identifier "param_1") (+ "+") (number_literal "0x3b0")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3b4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b4)" (* "*") (cast_expression "(code **)(param_1 + 0x3b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3b4)" (( "(") (binary_expression "param_1 + 0x3b4" (identifier "param_1") (+ "+") (number_literal "0x3b4")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3b8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3b8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3b8)" (* "*") (cast_expression "(code **)(param_1 + 0x3b8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3b8)" (( "(") (binary_expression "param_1 + 0x3b8" (identifier "param_1") (+ "+") (number_literal "0x3b8")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3d8)" (* "*") (cast_expression "(code **)(param_1 + 0x3d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3d8)" (( "(") (binary_expression "param_1 + 0x3d8" (identifier "param_1") (+ "+") (number_literal "0x3d8")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3dc)" (* "*") (cast_expression "(code **)(param_1 + 0x3dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3dc)" (( "(") (binary_expression "param_1 + 0x3dc" (identifier "param_1") (+ "+") (number_literal "0x3dc")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e0)" (* "*") (cast_expression "(code **)(param_1 + 0x3e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3e0)" (( "(") (binary_expression "param_1 + 0x3e0" (identifier "param_1") (+ "+") (number_literal "0x3e0")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3e4)" (* "*") (cast_expression "(code **)(param_1 + 0x3e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3e4)" (( "(") (binary_expression "param_1 + 0x3e4" (identifier "param_1") (+ "+") (number_literal "0x3e4")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 1000) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 1000)" (* "*") (cast_expression "(code **)(param_1 + 1000)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 1000)" (( "(") (binary_expression "param_1 + 1000" (identifier "param_1") (+ "+") (number_literal "1000")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3ec)" (* "*") (cast_expression "(code **)(param_1 + 0x3ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3ec)" (( "(") (binary_expression "param_1 + 0x3ec" (identifier "param_1") (+ "+") (number_literal "0x3ec")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f0)" (* "*") (cast_expression "(code **)(param_1 + 0x3f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3f0)" (( "(") (binary_expression "param_1 + 0x3f0" (identifier "param_1") (+ "+") (number_literal "0x3f0")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_0003beb0;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_0003beb0" (pointer_expression "*(code **)(param_1 + 0x3f4)" (* "*") (cast_expression "(code **)(param_1 + 0x3f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3f4)" (( "(") (binary_expression "param_1 + 0x3f4" (identifier "param_1") (+ "+") (number_literal "0x3f4")) () ")")))) (= "=") (identifier "FUN_0003beb0")) (; ";")) (expression_statement "piVar8[2] = 0;" (assignment_expression "piVar8[2] = 0" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0xe] = 0;" (assignment_expression "piVar8[0xe] = 0" (subscript_expression "piVar8[0xe]" (identifier "piVar8") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0xb] = 0;" (assignment_expression "piVar8[0xb] = 0" (subscript_expression "piVar8[0xb]" (identifier "piVar8") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 == 0) {\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }\n    else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);\n      if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }\nLAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }\n    }" ({ "{") (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x23)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x23") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002fadd:\n        *piVar8 = 0x246f;\n        goto LAB_0002d320;\n      }" ({ "{") (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0002fadd:\n        *piVar8 = 0x246f;" (statement_identifier "LAB_0002fadd") (: ":") (expression_statement "*piVar8 = 0x246f;" (assignment_expression "*piVar8 = 0x246f" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x246f")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (labeled_statement "LAB_0002dbfb:\n      if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" (statement_identifier "LAB_0002dbfb") (: ":") (if_statement "if (piVar8[2] == 0) {\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(piVar8[2] == 0)" (( "(") (binary_expression "piVar8[2] == 0" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00033b40();\nLAB_0002dc2e:\n        *piVar8 = 0x247a;\n        goto LAB_0002d320;\n      }" ({ "{") (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0002dc2e:\n        *piVar8 = 0x247a;" (statement_identifier "LAB_0002dc2e") (: ":") (expression_statement "*piVar8 = 0x247a;" (assignment_expression "*piVar8 = 0x247a" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x247a")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}")))) (} "}")) (else_clause "else {\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" (else "else") (compound_statement "{\nLAB_0002d973:\n      piVar8[0xd] = 1;\n    }" ({ "{") (labeled_statement "LAB_0002d973:\n      piVar8[0xd] = 1;" (statement_identifier "LAB_0002d973") (: ":") (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "1")) (; ";"))) (} "}")))) (labeled_statement "LAB_0002d97a:\n    FUN_0001c780(param_1 + 0x178);" (statement_identifier "LAB_0002d97a") (: ":") (expression_statement "FUN_0001c780(param_1 + 0x178);" (call_expression "FUN_0001c780(param_1 + 0x178)" (identifier "FUN_0001c780") (argument_list "(param_1 + 0x178)" (( "(") (binary_expression "param_1 + 0x178" (identifier "param_1") (+ "+") (number_literal "0x178")) () ")"))) (; ";"))) (expression_statement "*(code **)(param_1 + 0x344) = FUN_0002bdb0;" (assignment_expression "*(code **)(param_1 + 0x344) = FUN_0002bdb0" (pointer_expression "*(code **)(param_1 + 0x344)" (* "*") (cast_expression "(code **)(param_1 + 0x344)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x344)" (( "(") (binary_expression "param_1 + 0x344" (identifier "param_1") (+ "+") (number_literal "0x344")) () ")")))) (= "=") (identifier "FUN_0002bdb0")) (; ";")) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar8[0xd] == 0) {\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }\n    else {\n      piVar8[0x13] = 0;\n    }" (if "if") (parenthesized_expression "(piVar8[0xd] == 0)" (( "(") (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n      piVar8[0x2f] = iVar7;\n      iVar7 = FUN_000631b0(iVar7);\n      if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }\n      piVar8[0x1c] = 0;\n      piVar8[0x21] = 0;\n      piVar8[0x1f] = 0;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);\n      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }\nLAB_0002d7b9:\n      piVar8[0x13] = 0;\n      if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }\n    }" ({ "{") (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "iVar7") (= "=") (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "FUN_00018f20") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar7 = FUN_000631b0(iVar7);" (assignment_expression "iVar7 = FUN_000631b0(iVar7)" (identifier "iVar7") (= "=") (call_expression "FUN_000631b0(iVar7)" (identifier "FUN_000631b0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = FUN_00063170(piVar8[0x2f]);\n        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);\n        iVar7 = FUN_00052e80(piVar8[0x2f]);\n        if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }\n      }" ({ "{") (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" (identifier "uVar11") (= "=") (call_expression "FUN_00063170(piVar8[0x2f])" (identifier "FUN_00063170") (argument_list "(piVar8[0x2f])" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) () ")")))) (; ";")) (expression_statement "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);" (call_expression "FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11)" (identifier "FUN_00026c00") (argument_list "(param_1,"Reading key file \"%.150s\"",uVar11)" (( "(") (identifier "param_1") (, ",") (string_literal ""Reading key file \"%.150s\""" (" """) (string_content "Reading key file ") (escape_sequence "\"") (string_content "%.150s") (escape_sequence "\"") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "iVar7 = FUN_00052e80(piVar8[0x2f]);" (assignment_expression "iVar7 = FUN_00052e80(piVar8[0x2f])" (identifier "iVar7") (= "=") (call_expression "FUN_00052e80(piVar8[0x2f])" (identifier "FUN_00052e80") (argument_list "(piVar8[0x2f])" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar7 == 9) || (iVar7 == 3)) {\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\n        else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" (if "if") (parenthesized_expression "((iVar7 == 9) || (iVar7 == 3))" (( "(") (binary_expression "(iVar7 == 9) || (iVar7 == 3)" (parenthesized_expression "(iVar7 == 9)" (( "(") (binary_expression "iVar7 == 9" (identifier "iVar7") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar7 == 3)" (( "(") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3")) () ")"))) () ")")) (compound_statement "{\n          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar5;\n          if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }\nLAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);\n          pcVar16 = local_2c[0];\n          uVar11 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" ({ "{") (expression_statement "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (identifier "iVar5") (= "=") (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (identifier "FUN_00051ad0") (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (, ",") (binary_expression "piVar8 + 0x18" (identifier "piVar8") (+ "+") (number_literal "0x18")) (, ",") (binary_expression "piVar8 + 0x15" (identifier "piVar8") (+ "+") (number_literal "0x15")) (, ",") (binary_expression "piVar8 + 0x19" (identifier "piVar8") (+ "+") (number_literal "0x19")) (, ",") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "piVar8[0x14] = iVar5;" (assignment_expression "piVar8[0x14] = iVar5" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 != 0) {\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            piVar8[0x16] = (uint)(iVar7 == 3);\n            if (iVar7 != 3) goto LAB_0002fb9e;\n            goto LAB_0002fbb1;\n          }" ({ "{") (expression_statement "piVar8[0x16] = (uint)(iVar7 == 3);" (assignment_expression "piVar8[0x16] = (uint)(iVar7 == 3)" (subscript_expression "piVar8[0x16]" (identifier "piVar8") ([ "[") (number_literal "0x16") (] "]")) (= "=") (call_expression "(uint)(iVar7 == 3)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar7 == 3)" (( "(") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (iVar7 != 3) goto LAB_0002fb9e;" (if "if") (parenthesized_expression "(iVar7 != 3)" (( "(") (binary_expression "iVar7 != 3" (identifier "iVar7") (!= "!=") (number_literal "3")) () ")")) (goto_statement "goto LAB_0002fb9e;" (goto "goto") (statement_identifier "LAB_0002fb9e") (; ";"))) (goto_statement "goto LAB_0002fbb1;" (goto "goto") (statement_identifier "LAB_0002fbb1") (; ";")) (} "}"))) (labeled_statement "LAB_00030219:\n          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" (statement_identifier "LAB_00030219") (: ":") (expression_statement "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);" (call_expression "FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0])" (identifier "FUN_00026c00") (argument_list "(param_1,"Unable to load key (%s)",local_2c[0])" (( "(") (identifier "param_1") (, ",") (string_literal ""Unable to load key (%s)"" (" """) (string_content "Unable to load key (%s)") (" """)) (, ",") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";"))) (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" (identifier "pcVar16") (= "=") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar11 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar11 = FUN_00063170(piVar8[0x2f])" (identifier "uVar11") (= "=") (call_expression "FUN_00063170(piVar8[0x2f])" (identifier "FUN_00063170") (argument_list "(piVar8[0x2f])" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" (identifier "FUN_0001d000") (argument_list "("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,\n                                         pcVar16)" (( "(") (string_literal ""Unable to load key file \"%.150s\" (%s)\r\n"" (" """) (string_content "Unable to load key file ") (escape_sequence "\"") (string_content "%.150s") (escape_sequence "\"") (string_content " (%s)") (escape_sequence "\r") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "pcVar16") () ")"))))) (; ";")) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" (identifier "FUN_0001d220") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" (else "else") (if_statement "if (iVar7 == 10) {\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }\n        else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" (if "if") (parenthesized_expression "(iVar7 == 10)" (( "(") (binary_expression "iVar7 == 10" (identifier "iVar7") (== "==") (number_literal "10")) () ")")) (compound_statement "{\n          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);\n          piVar8[0x14] = iVar7;\n          if (iVar7 == 0) goto LAB_00030219;\n          piVar8[0x16] = 0;\nLAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);\nLAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);\n          piVar8[0x17] = iVar7;\n        }" ({ "{") (expression_statement "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);" (assignment_expression "iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (identifier "iVar7") (= "=") (call_expression "FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (identifier "FUN_00051ad0") (argument_list "(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c)" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (, ",") (binary_expression "piVar8 + 0x18" (identifier "piVar8") (+ "+") (number_literal "0x18")) (, ",") (binary_expression "piVar8 + 0x15" (identifier "piVar8") (+ "+") (number_literal "0x15")) (, ",") (binary_expression "piVar8 + 0x19" (identifier "piVar8") (+ "+") (number_literal "0x19")) (, ",") (identifier "local_2c") () ")")))) (; ";")) (expression_statement "piVar8[0x14] = iVar7;" (assignment_expression "piVar8[0x14] = iVar7" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_00030219;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00030219;" (goto "goto") (statement_identifier "LAB_00030219") (; ";"))) (expression_statement "piVar8[0x16] = 0;" (assignment_expression "piVar8[0x16] = 0" (subscript_expression "piVar8[0x16]" (identifier "piVar8") ([ "[") (number_literal "0x16") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002fb9e:\n          FUN_00026c00(param_1,"Key file contains public key only",uVar11);" (statement_identifier "LAB_0002fb9e") (: ":") (expression_statement "FUN_00026c00(param_1,"Key file contains public key only",uVar11);" (call_expression "FUN_00026c00(param_1,"Key file contains public key only",uVar11)" (identifier "FUN_00026c00") (argument_list "(param_1,"Key file contains public key only",uVar11)" (( "(") (identifier "param_1") (, ",") (string_literal ""Key file contains public key only"" (" """) (string_content "Key file contains public key only") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";"))) (labeled_statement "LAB_0002fbb1:\n          iVar7 = FUN_00051ea0(piVar8[0x2f],0);" (statement_identifier "LAB_0002fbb1") (: ":") (expression_statement "iVar7 = FUN_00051ea0(piVar8[0x2f],0);" (assignment_expression "iVar7 = FUN_00051ea0(piVar8[0x2f],0)" (identifier "iVar7") (= "=") (call_expression "FUN_00051ea0(piVar8[0x2f],0)" (identifier "FUN_00051ea0") (argument_list "(piVar8[0x2f],0)" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "piVar8[0x17] = iVar7;" (assignment_expression "piVar8[0x17] = iVar7" (subscript_expression "piVar8[0x17]" (identifier "piVar8") ([ "[") (number_literal "0x17") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (} "}")) (else_clause "else {\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" (else "else") (compound_statement "{\n          uVar11 = FUN_00052ed0(iVar7);\n          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);\n          uVar11 = FUN_00052ed0(iVar7);\n          uVar17 = FUN_00063170(piVar8[0x2f]);\n          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n          piVar8[0x14] = 0;\n        }" ({ "{") (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" (identifier "uVar11") (= "=") (call_expression "FUN_00052ed0(iVar7)" (identifier "FUN_00052ed0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);" (call_expression "FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11)" (identifier "FUN_00026c00") (argument_list "(param_1,"Unable to use this key file (%s)",uVar11)" (( "(") (identifier "param_1") (, ",") (string_literal ""Unable to use this key file (%s)"" (" """) (string_content "Unable to use this key file (%s)") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "uVar11 = FUN_00052ed0(iVar7);" (assignment_expression "uVar11 = FUN_00052ed0(iVar7)" (identifier "uVar11") (= "=") (call_expression "FUN_00052ed0(iVar7)" (identifier "FUN_00052ed0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "uVar17 = FUN_00063170(piVar8[0x2f]);" (assignment_expression "uVar17 = FUN_00063170(piVar8[0x2f])" (identifier "uVar17") (= "=") (call_expression "FUN_00063170(piVar8[0x2f])" (identifier "FUN_00063170") (argument_list "(piVar8[0x2f])" (( "(") (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)\n          ;" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" (identifier "FUN_0001d000") (argument_list "("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)" (( "(") (string_literal ""Unable to use key file \"%.150s\" (%s)\r\n"" (" """) (string_content "Unable to use key file ") (escape_sequence "\"") (string_content "%.150s") (escape_sequence "\"") (string_content " (%s)") (escape_sequence "\r") (escape_sequence "\n") (" """)) (, ",") (identifier "uVar17") (, ",") (identifier "uVar11") () ")"))))) (; ";")) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" (identifier "FUN_0001d220") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "piVar8[0x14] = 0;" (assignment_expression "piVar8[0x14] = 0" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))))) (} "}"))) (expression_statement "piVar8[0x1c] = 0;" (assignment_expression "piVar8[0x1c] = 0" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x1f] = 0;" (assignment_expression "piVar8[0x1f] = 0" (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1c)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x1c") () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" (if "if") (parenthesized_expression "((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00061870(), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00061870(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00061870()" (identifier "iVar7") (= "=") (call_expression "FUN_00061870()" (identifier "FUN_00061870") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");\n        piVar8[0x1a] = 0x1000000;\n        *(undefined1 *)(piVar8 + 0x1b) = 0xb;\n        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }\nLAB_0002d78a:\n        pcVar16 = local_2c[0];\n        piVar8[0x1c] = (int)local_2c[0];\n        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }\n      }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Pageant is running. Requesting keys."" (" """) (string_content "Pageant is running. Requesting keys.") (" """)) () ")"))) (; ";")) (expression_statement "piVar8[0x1a] = 0x1000000;" (assignment_expression "piVar8[0x1a] = 0x1000000" (subscript_expression "piVar8[0x1a]" (identifier "piVar8") ([ "[") (number_literal "0x1a") (] "]")) (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "*(undefined1 *)(piVar8 + 0x1b) = 0xb;" (assignment_expression "*(undefined1 *)(piVar8 + 0x1b) = 0xb" (pointer_expression "*(undefined1 *)(piVar8 + 0x1b)" (* "*") (cast_expression "(undefined1 *)(piVar8 + 0x1b)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8 + 0x1b)" (( "(") (binary_expression "piVar8 + 0x1b" (identifier "piVar8") (+ "+") (number_literal "0x1b")) () ")")))) (= "=") (number_literal "0xb")) (; ";")) (expression_statement "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" (identifier "iVar7") (= "=") (call_expression "FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" (identifier "FUN_00061990") (argument_list "(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1)" (( "(") (binary_expression "piVar8 + 0x1a" (identifier "piVar8") (+ "+") (number_literal "0x1a")) (, ",") (number_literal "5") (, ",") (identifier "local_2c") (, ",") (binary_expression "piVar8 + 0x1e" (identifier "piVar8") (+ "+") (number_literal "0x1e")) (, ",") (identifier "FUN_0003be30") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" (* "*") (cast_expression "(int *)(param_1 + 0x6d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6d0)" (( "(") (binary_expression "param_1 + 0x6d0" (identifier "param_1") (+ "+") (number_literal "0x6d0")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 != 0) {\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002eb58:\n          *piVar8 = 0x24d9;\n          goto LAB_0002d320;\n        }" ({ "{") (labeled_statement "LAB_0002eb58:\n          *piVar8 = 0x24d9;" (statement_identifier "LAB_0002eb58") (: ":") (expression_statement "*piVar8 = 0x24d9;" (assignment_expression "*piVar8 = 0x24d9" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x24d9")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (labeled_statement "LAB_0002d78a:\n        pcVar16 = local_2c[0];" (statement_identifier "LAB_0002d78a") (: ":") (expression_statement "pcVar16 = local_2c[0];" (assignment_expression "pcVar16 = local_2c[0]" (identifier "pcVar16") (= "=") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]"))) (; ";"))) (expression_statement "piVar8[0x1c] = (int)local_2c[0];" (assignment_expression "piVar8[0x1c] = (int)local_2c[0]" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (= "=") (cast_expression "(int)local_2c[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")))) (; ";")) (if_statement "if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }\n        else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" (if "if") (parenthesized_expression "(((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f'))" (( "(") (binary_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')" (parenthesized_expression "((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5))" (( "(") (binary_expression "(local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)" (parenthesized_expression "(local_2c[0] == (char *)0x0)" (( "(") (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(piVar8[0x1e] < 5)" (( "(") (binary_expression "piVar8[0x1e] < 5" (subscript_expression "piVar8[0x1e]" (identifier "piVar8") ([ "[") (number_literal "0x1e") (] "]")) (< "<") (number_literal "5")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_2c[0][4] != '\f')" (( "(") (binary_expression "local_2c[0][4] != '\f'" (subscript_expression "local_2c[0][4]" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "4") (] "]")) (!= "!=") (char_literal "'\f'" (' "'") (escape_sequence "\f") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");\n        }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Failed to get reply from Pageant"" (" """) (string_content "Failed to get reply from Pageant") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else {\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = *(uint *)(local_2c[0] + 5);\n          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);\n          piVar8[0x21] = iVar7;\n          if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }\n          FUN_00026c00(param_1,pcVar16);\n          piVar8[0x21] = 0;\n        }" ({ "{") (expression_statement "uVar12 = *(uint *)(local_2c[0] + 5);" (assignment_expression "uVar12 = *(uint *)(local_2c[0] + 5)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(local_2c[0] + 5)" (* "*") (cast_expression "(uint *)(local_2c[0] + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_2c[0] + 5)" (( "(") (binary_expression "local_2c[0] + 5" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (identifier "iVar7") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                               uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "piVar8[0x21] = iVar7;" (assignment_expression "piVar8[0x21] = iVar7" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 < 0) {\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }\n          else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar16 = "Pageant response contained a negative key count %d";\n          }" ({ "{") (expression_statement "pcVar16 = "Pageant response contained a negative key count %d";" (assignment_expression "pcVar16 = "Pageant response contained a negative key count %d"" (identifier "pcVar16") (= "=") (string_literal ""Pageant response contained a negative key count %d"" (" """) (string_content "Pageant response contained a negative key count %d") (" """))) (; ";")) (} "}")) (else_clause "else {\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" (else "else") (compound_statement "{\n            puVar22 = (uint *)(pcVar16 + 9);\n            iVar5 = piVar8[0x1e] + -9;\n            puVar19 = puVar22;\n            if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }\n            iVar6 = 0;\n            puVar20 = puVar22;\n            if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }\n            pcVar16 = "Pageant response was truncated";\n          }" ({ "{") (expression_statement "puVar22 = (uint *)(pcVar16 + 9);" (assignment_expression "puVar22 = (uint *)(pcVar16 + 9)" (identifier "puVar22") (= "=") (cast_expression "(uint *)(pcVar16 + 9)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 9)" (( "(") (binary_expression "pcVar16 + 9" (identifier "pcVar16") (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "iVar5 = piVar8[0x1e] + -9;" (assignment_expression "iVar5 = piVar8[0x1e] + -9" (identifier "iVar5") (= "=") (binary_expression "piVar8[0x1e] + -9" (subscript_expression "piVar8[0x1e]" (identifier "piVar8") ([ "[") (number_literal "0x1e") (] "]")) (+ "+") (number_literal "-9"))) (; ";")) (expression_statement "puVar19 = puVar22;" (assignment_expression "puVar19 = puVar22" (identifier "puVar19") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (iVar7 == 0) {\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);\n              if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }\n              goto LAB_0002d7b9;\n            }" ({ "{") (labeled_statement "LAB_00030479:\n              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" (statement_identifier "LAB_00030479") (: ":") (expression_statement "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);" (call_expression "FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" (identifier "FUN_00026c00") (argument_list "(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19)" (( "(") (identifier "param_1") (, ",") (string_literal ""Pageant has %d SSH-2 keys"" (" """) (string_content "Pageant has %d SSH-2 keys") (" """)) (, ",") (identifier "iVar7") (, ",") (identifier "puVar19") () ")"))) (; ";"))) (if_statement "if (piVar8[0x14] != 0) {\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" (if "if") (parenthesized_expression "(piVar8[0x14] != 0)" (( "(") (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar11 = extraout_ECX_00;\n                if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }\n                if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }\n              }" ({ "{") (expression_statement "uVar11 = extraout_ECX_00;" (assignment_expression "uVar11 = extraout_ECX_00" (identifier "uVar11") (= "=") (identifier "extraout_ECX_00")) (; ";")) (if_statement "if (0 < piVar8[0x21]) {\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" (if "if") (parenthesized_expression "(0 < piVar8[0x21])" (( "(") (binary_expression "0 < piVar8[0x21]" (number_literal "0") (< "<") (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]"))) () ")")) (compound_statement "{\n                  iVar7 = 0;\n                  do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);\n                }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  } while (iVar7 < piVar8[0x21]);" (do "do") (compound_statement "{\n                    uVar12 = *puVar22;\n                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    piVar8[0x25] = sVar4;\n                    if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }\n                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);\n                    iVar7 = iVar7 + 1;\n                    uVar12 = *puVar22;\n                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);\n                    uVar11 = extraout_ECX_01;\n                  }" ({ "{") (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" (identifier "uVar12") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "sVar4") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "piVar8[0x25] = sVar4;" (assignment_expression "piVar8[0x25] = sVar4" (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "sVar4")) (; ";")) (if_statement "if ((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" (if "if") (parenthesized_expression "((sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0))" (( "(") (binary_expression "(sVar4 == piVar8[0x15]) &&\n                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" (parenthesized_expression "(sVar4 == piVar8[0x15])" (( "(") (binary_expression "sVar4 == piVar8[0x15]" (identifier "sVar4") (== "==") (subscript_expression "piVar8[0x15]" (identifier "piVar8") ([ "[") (number_literal "0x15") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)" (( "(") (comma_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0" (assignment_expression "iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" (identifier "iVar5") (= "=") (call_expression "memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4)" (identifier "memcmp") (argument_list "(puVar22 + 1,(void *)piVar8[0x14],sVar4)" (( "(") (binary_expression "puVar22 + 1" (identifier "puVar22") (+ "+") (number_literal "1")) (, ",") (cast_expression "(void *)piVar8[0x14]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]"))) (, ",") (identifier "sVar4") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);\n                      piVar8[0x20] = iVar7;\n                      piVar8[0x1f] = (int)puVar22;\n                      goto LAB_0002d7b9;\n                    }" ({ "{") (expression_statement "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);" (call_expression "FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0)" (identifier "FUN_00026c00") (argument_list "(param_1,"Pageant key #%d matches configured key file",iVar7,0)" (( "(") (identifier "param_1") (, ",") (string_literal ""Pageant key #%d matches configured key file"" (" """) (string_content "Pageant key #%d matches configured key file") (" """)) (, ",") (identifier "iVar7") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "piVar8[0x20] = iVar7;" (assignment_expression "piVar8[0x20] = iVar7" (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar8[0x1f] = (int)puVar22;" (assignment_expression "piVar8[0x1f] = (int)puVar22" (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]")) (= "=") (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22"))) (; ";")) (goto_statement "goto LAB_0002d7b9;" (goto "goto") (statement_identifier "LAB_0002d7b9") (; ";")) (} "}"))) (expression_statement "puVar22 = (uint *)((int)puVar22 + sVar4 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + sVar4 + 4)" (identifier "puVar22") (= "=") (cast_expression "(uint *)((int)puVar22 + sVar4 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + sVar4 + 4)" (( "(") (binary_expression "(int)puVar22 + sVar4 + 4" (binary_expression "(int)puVar22 + sVar4" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (identifier "sVar4")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = *puVar22;" (assignment_expression "uVar12 = *puVar22" (identifier "uVar12") (= "=") (pointer_expression "*puVar22" (* "*") (identifier "puVar22"))) (; ";")) (expression_statement "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "iVar5") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                         (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "puVar22 = (uint *)((int)puVar22 + iVar5 + 4);" (assignment_expression "puVar22 = (uint *)((int)puVar22 + iVar5 + 4)" (identifier "puVar22") (= "=") (cast_expression "(uint *)((int)puVar22 + iVar5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar22 + iVar5 + 4)" (( "(") (binary_expression "(int)puVar22 + iVar5 + 4" (binary_expression "(int)puVar22 + iVar5" (cast_expression "(int)puVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar22")) (+ "+") (identifier "iVar5")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar11 = extraout_ECX_01;" (assignment_expression "uVar11 = extraout_ECX_01" (identifier "uVar11") (= "=") (identifier "extraout_ECX_01")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 < piVar8[0x21])" (( "(") (binary_expression "iVar7 < piVar8[0x21]" (identifier "iVar7") (< "<") (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]"))) () ")")) (; ";")) (} "}"))) (if_statement "if (piVar8[0x1f] == 0) {\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" (if "if") (parenthesized_expression "(piVar8[0x1f] == 0)" (( "(") (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);\n                  piVar8[0x21] = 0;\n                }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"\n                               ,uVar11,uVar11)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Configured key file not in Pageant"" (" """) (string_content "Configured key file not in Pageant") (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}"))) (goto_statement "goto LAB_0002d7b9;" (goto "goto") (statement_identifier "LAB_0002d7b9") (; ";")) (} "}"))) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar20 = puVar22;" (assignment_expression "puVar20 = puVar22" (identifier "puVar20") (= "=") (identifier "puVar22")) (; ";")) (if_statement "if (3 < iVar5) {\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" (if "if") (parenthesized_expression "(3 < iVar5)" (( "(") (binary_expression "3 < iVar5" (number_literal "3") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n              while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }\n            }" ({ "{") (while_statement "while( true ) {\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                uVar12 = *puVar20;\n                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);\n                if (iVar5 - 4U < uVar12) break;\n                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);\n                uVar3 = *puVar20;\n                iVar5 = ((iVar5 - 4U) - uVar12) + -4;\n                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);\n                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);\n                iVar18 = (int)uVar24;\n                if ((iVar18 < 0) || (iVar5 < iVar18)) break;\n                iVar5 = iVar5 - iVar18;\n                iVar6 = iVar6 + 1;\n                iVar7 = piVar8[0x21];\n                if (iVar7 <= iVar6) goto LAB_00030479;\n                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);\n                if (iVar5 < 4) break;\n              }" ({ "{") (expression_statement "uVar12 = *puVar20;" (assignment_expression "uVar12 = *puVar20" (identifier "uVar12") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);" (assignment_expression "uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "uVar12") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |\n                                      (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (if_statement "if (iVar5 - 4U < uVar12) break;" (if "if") (parenthesized_expression "(iVar5 - 4U < uVar12)" (( "(") (binary_expression "iVar5 - 4U < uVar12" (binary_expression "iVar5 - 4U" (identifier "iVar5") (- "-") (number_literal "4U")) (< "<") (identifier "uVar12")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar20 = (uint *)((int)puVar20 + uVar12 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + uVar12 + 4)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)puVar20 + uVar12 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + uVar12 + 4)" (( "(") (binary_expression "(int)puVar20 + uVar12 + 4" (binary_expression "(int)puVar20 + uVar12" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (identifier "uVar12")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "uVar3 = *puVar20;" (assignment_expression "uVar3 = *puVar20" (identifier "uVar3") (= "=") (pointer_expression "*puVar20" (* "*") (identifier "puVar20"))) (; ";")) (expression_statement "iVar5 = ((iVar5 - 4U) - uVar12) + -4;" (assignment_expression "iVar5 = ((iVar5 - 4U) - uVar12) + -4" (identifier "iVar5") (= "=") (binary_expression "((iVar5 - 4U) - uVar12) + -4" (parenthesized_expression "((iVar5 - 4U) - uVar12)" (( "(") (binary_expression "(iVar5 - 4U) - uVar12" (parenthesized_expression "(iVar5 - 4U)" (( "(") (binary_expression "iVar5 - 4U" (identifier "iVar5") (- "-") (number_literal "4U")) () ")")) (- "-") (identifier "uVar12")) () ")")) (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);" (assignment_expression "uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" (identifier "uVar24") (= "=") (call_expression "FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18)" (( "(") (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |\n                                      (uVar3 & 0xff00) << 8" (binary_expression "uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8" (binary_expression "uVar3 >> 0x18" (identifier "uVar3") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar3 & 0xff0000) >> 8" (parenthesized_expression "(uVar3 & 0xff0000)" (( "(") (binary_expression "uVar3 & 0xff0000" (identifier "uVar3") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar3 & 0xff00) << 8" (parenthesized_expression "(uVar3 & 0xff00)" (( "(") (binary_expression "uVar3 & 0xff00" (identifier "uVar3") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar3 << 0x18" (identifier "uVar3") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);" (assignment_expression "puVar19 = (uint *)((ulonglong)uVar24 >> 0x20)" (identifier "puVar19") (= "=") (cast_expression "(uint *)((ulonglong)uVar24 >> 0x20)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar24 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar24 >> 0x20" (cast_expression "(ulonglong)uVar24" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar24")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "iVar18 = (int)uVar24;" (assignment_expression "iVar18 = (int)uVar24" (identifier "iVar18") (= "=") (cast_expression "(int)uVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar24"))) (; ";")) (if_statement "if ((iVar18 < 0) || (iVar5 < iVar18)) break;" (if "if") (parenthesized_expression "((iVar18 < 0) || (iVar5 < iVar18))" (( "(") (binary_expression "(iVar18 < 0) || (iVar5 < iVar18)" (parenthesized_expression "(iVar18 < 0)" (( "(") (binary_expression "iVar18 < 0" (identifier "iVar18") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar5 < iVar18)" (( "(") (binary_expression "iVar5 < iVar18" (identifier "iVar5") (< "<") (identifier "iVar18")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = iVar5 - iVar18;" (assignment_expression "iVar5 = iVar5 - iVar18" (identifier "iVar5") (= "=") (binary_expression "iVar5 - iVar18" (identifier "iVar5") (- "-") (identifier "iVar18"))) (; ";")) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = piVar8[0x21];" (assignment_expression "iVar7 = piVar8[0x21]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (if_statement "if (iVar7 <= iVar6) goto LAB_00030479;" (if "if") (parenthesized_expression "(iVar7 <= iVar6)" (( "(") (binary_expression "iVar7 <= iVar6" (identifier "iVar7") (<= "<=") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00030479;" (goto "goto") (statement_identifier "LAB_00030479") (; ";"))) (expression_statement "puVar20 = (uint *)((int)puVar20 + iVar18 + 4);" (assignment_expression "puVar20 = (uint *)((int)puVar20 + iVar18 + 4)" (identifier "puVar20") (= "=") (cast_expression "(uint *)((int)puVar20 + iVar18 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar20 + iVar18 + 4)" (( "(") (binary_expression "(int)puVar20 + iVar18 + 4" (binary_expression "(int)puVar20 + iVar18" (cast_expression "(int)puVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar20")) (+ "+") (identifier "iVar18")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (iVar5 < 4) break;" (if "if") (parenthesized_expression "(iVar5 < 4)" (( "(") (binary_expression "iVar5 < 4" (identifier "iVar5") (< "<") (number_literal "4")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}"))) (} "}"))) (expression_statement "pcVar16 = "Pageant response was truncated";" (assignment_expression "pcVar16 = "Pageant response was truncated"" (identifier "pcVar16") (= "=") (string_literal ""Pageant response was truncated"" (" """) (string_content "Pageant response was truncated") (" """))) (; ";")) (} "}")))) (expression_statement "FUN_00026c00(param_1,pcVar16);" (call_expression "FUN_00026c00(param_1,pcVar16)" (identifier "FUN_00026c00") (argument_list "(param_1,pcVar16)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "piVar8[0x21] = 0;" (assignment_expression "piVar8[0x21] = 0" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0002d7b9:\n      piVar8[0x13] = 0;" (statement_identifier "LAB_0002d7b9") (: ":") (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" (identifier "piVar8") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (piVar8[0xd] == 0) {\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(piVar8[0xd] == 0)" (( "(") (binary_expression "piVar8[0xd] == 0" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));\n        *(int *)(param_1 + 0x250) = iVar7;\n        if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }\nLAB_0002d7f9:\n        piVar8[0x13] = 1;\n        *(undefined4 *)(param_1 + 0x188) = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00033b40();\n        piVar8[1] = 0;\n        piVar8[3] = 0;\n        piVar8[0xd] = 0;\n        piVar8[8] = 0;\n        piVar8[0xc] = 0;\n        piVar8[9] = 0;\n        if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }\nLAB_0002d310:\n        *piVar8 = 0x25a0;\n        goto LAB_0002d320;\n      }" ({ "{") (labeled_statement "LAB_0002d7cb:\n        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" (statement_identifier "LAB_0002d7cb") (: ":") (expression_statement "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" (identifier "iVar7") (= "=") (call_expression "FUN_000233a0(*(undefined4 *)(param_1 + 0x248))" (identifier "FUN_000233a0") (argument_list "(*(undefined4 *)(param_1 + 0x248))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) () ")")))) (; ";"))) (expression_statement "*(int *)(param_1 + 0x250) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x250) = iVar7" (pointer_expression "*(int *)(param_1 + 0x250)" (* "*") (cast_expression "(int *)(param_1 + 0x250)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }\n        else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n          piVar8[0xf] = (int)puVar10;\n          *puVar10 = 1;\n          uVar11 = FUN_0001caa0("SSH login name");\n          puVar10[1] = uVar11;\n          uVar11 = FUN_0001caa0("login as: ");\n          FUN_0001ce70(piVar8[0xf],uVar11,1);\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n          *(undefined4 *)(param_1 + 0x250) = uVar11;\n          FUN_0001c2f0(piVar8[0xf]);\n        }" ({ "{") (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_0001ca50") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("SSH login name");" (assignment_expression "uVar11 = FUN_0001caa0("SSH login name")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("SSH login name")" (identifier "FUN_0001caa0") (argument_list "("SSH login name")" (( "(") (string_literal ""SSH login name"" (" """) (string_content "SSH login name") (" """)) () ")")))) (; ";")) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("login as: ");" (assignment_expression "uVar11 = FUN_0001caa0("login as: ")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("login as: ")" (identifier "FUN_0001caa0") (argument_list "("login as: ")" (( "(") (string_literal ""login as: "" (" """) (string_content "login as: ") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,1);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,1)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,1)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],0,0)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],0,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_0002f3ea:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" (statement_identifier "LAB_0002f3ea") (: ":") (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e8c8;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002e8c8;" (goto "goto") (statement_identifier "LAB_0002e8c8") (; ";")) (} "}")))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            FUN_00034b00(0,1);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" ({ "{") (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00034b00(0,1);" (call_expression "FUN_00034b00(0,1)" (identifier "FUN_00034b00") (argument_list "(0,1)" (( "(") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (identifier "FUN_0001caa0") (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (( "(") (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" (* "*") (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" (( "(") (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" (* "*") (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" (* "*") (cast_expression "(int **)(piVar8[0xf] + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0xf] + 0x18)" (( "(") (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x250) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x250) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x250)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x250)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (} "}")) (else_clause "else if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" (else "else") (if_statement "if (((byte)DAT_000a5b0c & 5) != 0) {\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" (if "if") (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" (( "(") (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" (( "(") (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000a5b0c")) (& "&") (number_literal "5")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);\n          strlen(pcVar16);\n          FUN_00029500();\n          FUN_0001d220(pcVar16);\n        }" ({ "{") (expression_statement "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);" (assignment_expression "pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001d000("Using username \"%s\".\r\n",iVar7)" (identifier "FUN_0001d000") (argument_list "("Using username \"%s\".\r\n",iVar7)" (( "(") (string_literal ""Using username \"%s\".\r\n"" (" """) (string_content "Using username ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (string_content ".") (escape_sequence "\r") (escape_sequence "\n") (" """)) (, ",") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" (identifier "FUN_0001d220") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))))) (labeled_statement "LAB_0002d7f9:\n        piVar8[0x13] = 1;" (statement_identifier "LAB_0002d7f9") (: ":") (expression_statement "piVar8[0x13] = 1;" (assignment_expression "piVar8[0x13] = 1" (subscript_expression "piVar8[0x13]" (identifier "piVar8") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "1")) (; ";"))) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8[1] = 0;" (assignment_expression "piVar8[1] = 0" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[8] = 0;" (assignment_expression "piVar8[8] = 0" (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0xc] = 0;" (assignment_expression "piVar8[0xc] = 0" (subscript_expression "piVar8[0xc]" (identifier "piVar8") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[9] = 0;" (assignment_expression "piVar8[9] = 0" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar8[0x1c] != 0) {\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" (if "if") (parenthesized_expression "(piVar8[0x1c] != 0)" (( "(") (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }\n        }" ({ "{") (if_statement "if (piVar8[0x1f] == 0) {\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }\n          else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" (if "if") (parenthesized_expression "(piVar8[0x1f] == 0)" (( "(") (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            piVar8[0x20] = 0;\n            piVar8[0x1d] = piVar8[0x1c] + 9;\n          }" ({ "{") (expression_statement "piVar8[0x20] = 0;" (assignment_expression "piVar8[0x20] = 0" (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x1d] = piVar8[0x1c] + 9;" (assignment_expression "piVar8[0x1d] = piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "piVar8[0x1c] + 9" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (+ "+") (number_literal "9"))) (; ";")) (} "}")) (else_clause "else {\n            piVar8[0x1d] = piVar8[0x1f];\n          }" (else "else") (compound_statement "{\n            piVar8[0x1d] = piVar8[0x1f];\n          }" ({ "{") (expression_statement "piVar8[0x1d] = piVar8[0x1f];" (assignment_expression "piVar8[0x1d] = piVar8[0x1f]" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0002d310:\n        *piVar8 = 0x25a0;" (statement_identifier "LAB_0002d310") (: ":") (expression_statement "*piVar8 = 0x25a0;" (assignment_expression "*piVar8 = 0x25a0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x25a0")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      piVar8[0x13] = 0;\n    }" (else "else") (compound_statement "{\n      piVar8[0x13] = 0;\n    }" ({ "{") (expression_statement "piVar8[0x13] = 0;" (assignment_expression "piVar8[0x13] = 0" (subscript_expression "piVar8[0x13]" (identifier "piVar8") ([ "[") (number_literal "0x13") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_0002d9b1:\n    *(undefined4 *)(param_1 + 0x344) = 0;" (statement_identifier "LAB_0002d9b1") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x344) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x344) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x344)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x344)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x344)" (( "(") (binary_expression "param_1 + 0x344" (identifier "param_1") (+ "+") (number_literal "0x344")) () ")")))) (= "=") (number_literal "0")) (; ";"))) (if_statement "if (piVar8[0x14] != 0) {\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" (if "if") (parenthesized_expression "(piVar8[0x14] != 0)" (( "(") (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0001d220(piVar8[0x18]);\n      FUN_0001d220(piVar8[0x14]);\n      FUN_0001d220(piVar8[0x19]);\n    }" ({ "{") (expression_statement "FUN_0001d220(piVar8[0x18]);" (call_expression "FUN_0001d220(piVar8[0x18])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x18])" (( "(") (subscript_expression "piVar8[0x18]" (identifier "piVar8") ([ "[") (number_literal "0x18") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x14]);" (call_expression "FUN_0001d220(piVar8[0x14])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x14])" (( "(") (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x19]);" (call_expression "FUN_0001d220(piVar8[0x19])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x19])" (( "(") (subscript_expression "piVar8[0x19]" (identifier "piVar8") ([ "[") (number_literal "0x19") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if (piVar8[0x1c] != 0) {\n      FUN_0001d220(piVar8[0x1c]);\n    }" (if "if") (parenthesized_expression "(piVar8[0x1c] != 0)" (( "(") (binary_expression "piVar8[0x1c] != 0" (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_0001d220(piVar8[0x1c]);\n    }" ({ "{") (expression_statement "FUN_0001d220(piVar8[0x1c]);" (call_expression "FUN_0001d220(piVar8[0x1c])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x1c])" (( "(") (subscript_expression "piVar8[0x1c]" (identifier "piVar8") ([ "[") (number_literal "0x1c") (] "]")) () ")"))) (; ";")) (} "}"))) (if_statement "if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {\n      FUN_000306b0(0);\n    }" (if "if") (parenthesized_expression "((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0))" (( "(") (binary_expression "(piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)" (parenthesized_expression "(piVar8[0xe] != 0)" (( "(") (binary_expression "piVar8[0xe] != 0" (subscript_expression "piVar8[0xe]" (identifier "piVar8") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 0xec) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xec) == 0" (pointer_expression "*(int *)(param_1 + 0xec)" (* "*") (cast_expression "(int *)(param_1 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xec)" (( "(") (binary_expression "param_1 + 0xec" (identifier "param_1") (+ "+") (number_literal "0xec")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_000306b0(0);\n    }" ({ "{") (expression_statement "FUN_000306b0(0);" (call_expression "FUN_000306b0(0)" (identifier "FUN_000306b0") (argument_list "(0)" (( "(") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar11 = FUN_000612a0(FUN_00026aa0);" (assignment_expression "uVar11 = FUN_000612a0(FUN_00026aa0)" (identifier "uVar11") (= "=") (call_expression "FUN_000612a0(FUN_00026aa0)" (identifier "FUN_000612a0") (argument_list "(FUN_00026aa0)" (( "(") (identifier "FUN_00026aa0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x124) = uVar11;" (assignment_expression "*(undefined4 *)(param_1 + 0x124) = uVar11" (pointer_expression "*(undefined4 *)(param_1 + 0x124)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x124)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x124)" (( "(") (binary_expression "param_1 + 0x124" (identifier "param_1") (+ "+") (number_literal "0x124")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3e4) = FUN_000373f0;" (assignment_expression "*(code **)(param_1 + 0x3e4) = FUN_000373f0" (pointer_expression "*(code **)(param_1 + 0x3e4)" (* "*") (cast_expression "(code **)(param_1 + 0x3e4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3e4)" (( "(") (binary_expression "param_1 + 0x3e4" (identifier "param_1") (+ "+") (number_literal "0x3e4")) () ")")))) (= "=") (identifier "FUN_000373f0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3b0) = FUN_00034300;" (assignment_expression "*(code **)(param_1 + 0x3b0) = FUN_00034300" (pointer_expression "*(code **)(param_1 + 0x3b0)" (* "*") (cast_expression "(code **)(param_1 + 0x3b0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3b0)" (( "(") (binary_expression "param_1 + 0x3b0" (identifier "param_1") (+ "+") (number_literal "0x3b0")) () ")")))) (= "=") (identifier "FUN_00034300")) (; ";")) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2d)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2d") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x128) = 0;\nLAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;\n      *(code **)(param_1 + 1000) = FUN_00037180;\n      *(code **)(param_1 + 0x3f0) = FUN_00037780;\n      *(code **)(param_1 + 0x3f4) = FUN_00037680;\n      *(code **)(param_1 + 0x3dc) = FUN_00037580;\n      *(code **)(param_1 + 0x3e0) = FUN_00035460;\n      *(code **)(param_1 + 0x3f8) = FUN_00034d80;\n      *(code **)(param_1 + 0x3d8) = FUN_00033b60;\n      *(code **)(param_1 + 0x3fc) = FUN_000374f0;\n      *(code **)(param_1 + 0x400) = FUN_000374f0;\n      if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }\n      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }\n      FUN_00035e50();\n      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }\n      *(undefined4 *)(param_1 + 0x104) = 1;\n      *(undefined4 *)(param_1 + 0x108) = 1;\nLAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;\n      if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }\n      if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }\n      if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }\n      if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }\nLAB_0002db95:\n      *piVar8 = 0x2abd;\n      goto LAB_0002d320;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x128) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x128) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002da71:\n      *(code **)(param_1 + 0x3ec) = FUN_00037180;" (statement_identifier "LAB_0002da71") (: ":") (expression_statement "*(code **)(param_1 + 0x3ec) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 0x3ec) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 0x3ec)" (* "*") (cast_expression "(code **)(param_1 + 0x3ec)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3ec)" (( "(") (binary_expression "param_1 + 0x3ec" (identifier "param_1") (+ "+") (number_literal "0x3ec")) () ")")))) (= "=") (identifier "FUN_00037180")) (; ";"))) (expression_statement "*(code **)(param_1 + 1000) = FUN_00037180;" (assignment_expression "*(code **)(param_1 + 1000) = FUN_00037180" (pointer_expression "*(code **)(param_1 + 1000)" (* "*") (cast_expression "(code **)(param_1 + 1000)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 1000)" (( "(") (binary_expression "param_1 + 1000" (identifier "param_1") (+ "+") (number_literal "1000")) () ")")))) (= "=") (identifier "FUN_00037180")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3f0) = FUN_00037780;" (assignment_expression "*(code **)(param_1 + 0x3f0) = FUN_00037780" (pointer_expression "*(code **)(param_1 + 0x3f0)" (* "*") (cast_expression "(code **)(param_1 + 0x3f0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3f0)" (( "(") (binary_expression "param_1 + 0x3f0" (identifier "param_1") (+ "+") (number_literal "0x3f0")) () ")")))) (= "=") (identifier "FUN_00037780")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3f4) = FUN_00037680;" (assignment_expression "*(code **)(param_1 + 0x3f4) = FUN_00037680" (pointer_expression "*(code **)(param_1 + 0x3f4)" (* "*") (cast_expression "(code **)(param_1 + 0x3f4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3f4)" (( "(") (binary_expression "param_1 + 0x3f4" (identifier "param_1") (+ "+") (number_literal "0x3f4")) () ")")))) (= "=") (identifier "FUN_00037680")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3dc) = FUN_00037580;" (assignment_expression "*(code **)(param_1 + 0x3dc) = FUN_00037580" (pointer_expression "*(code **)(param_1 + 0x3dc)" (* "*") (cast_expression "(code **)(param_1 + 0x3dc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3dc)" (( "(") (binary_expression "param_1 + 0x3dc" (identifier "param_1") (+ "+") (number_literal "0x3dc")) () ")")))) (= "=") (identifier "FUN_00037580")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3e0) = FUN_00035460;" (assignment_expression "*(code **)(param_1 + 0x3e0) = FUN_00035460" (pointer_expression "*(code **)(param_1 + 0x3e0)" (* "*") (cast_expression "(code **)(param_1 + 0x3e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3e0)" (( "(") (binary_expression "param_1 + 0x3e0" (identifier "param_1") (+ "+") (number_literal "0x3e0")) () ")")))) (= "=") (identifier "FUN_00035460")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3f8) = FUN_00034d80;" (assignment_expression "*(code **)(param_1 + 0x3f8) = FUN_00034d80" (pointer_expression "*(code **)(param_1 + 0x3f8)" (* "*") (cast_expression "(code **)(param_1 + 0x3f8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3f8)" (( "(") (binary_expression "param_1 + 0x3f8" (identifier "param_1") (+ "+") (number_literal "0x3f8")) () ")")))) (= "=") (identifier "FUN_00034d80")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3d8) = FUN_00033b60;" (assignment_expression "*(code **)(param_1 + 0x3d8) = FUN_00033b60" (pointer_expression "*(code **)(param_1 + 0x3d8)" (* "*") (cast_expression "(code **)(param_1 + 0x3d8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3d8)" (( "(") (binary_expression "param_1 + 0x3d8" (identifier "param_1") (+ "+") (number_literal "0x3d8")) () ")")))) (= "=") (identifier "FUN_00033b60")) (; ";")) (expression_statement "*(code **)(param_1 + 0x3fc) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x3fc) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x3fc)" (* "*") (cast_expression "(code **)(param_1 + 0x3fc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x3fc)" (( "(") (binary_expression "param_1 + 0x3fc" (identifier "param_1") (+ "+") (number_literal "0x3fc")) () ")")))) (= "=") (identifier "FUN_000374f0")) (; ";")) (expression_statement "*(code **)(param_1 + 0x400) = FUN_000374f0;" (assignment_expression "*(code **)(param_1 + 0x400) = FUN_000374f0" (pointer_expression "*(code **)(param_1 + 0x400)" (* "*") (cast_expression "(code **)(param_1 + 0x400)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x400)" (( "(") (binary_expression "param_1 + 0x400" (identifier "param_1") (+ "+") (number_literal "0x400")) () ")")))) (= "=") (identifier "FUN_000374f0")) (; ";")) (if_statement "if (*(int *)(param_1 + 0xf4) != 0) {\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0xf4) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0xf4) != 0" (pointer_expression "*(int *)(param_1 + 0xf4)" (* "*") (cast_expression "(int *)(param_1 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));\n      }" ({ "{") (expression_statement "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));" (call_expression "FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" (identifier "FUN_0005c140") (argument_list "(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8))" (( "(") (pointer_expression "*(int *)(param_1 + 0xf4)" (* "*") (cast_expression "(int *)(param_1 + 0xf4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf4)" (( "(") (binary_expression "param_1 + 0xf4" (identifier "param_1") (+ "+") (number_literal "0xf4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 8)" (( "(") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00027380(), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00027380(), iVar7 != 0" (assignment_expression "iVar7 = FUN_00027380()" (identifier "iVar7") (= "=") (call_expression "FUN_00027380()" (identifier "FUN_00027380") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar7 = FUN_0002ab60(0);\n        piVar8[0x2e] = iVar7;\n        FUN_00033b40();\n      }" ({ "{") (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" (identifier "iVar7") (= "=") (call_expression "FUN_0002ab60(0)" (identifier "FUN_0002ab60") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00035e50();" (call_expression "FUN_00035e50()" (identifier "FUN_00035e50") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0))" (( "(") (binary_expression "(*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)" (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(int *)(param_1 + 300) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 300) == 0" (pointer_expression "*(int *)(param_1 + 300)" (* "*") (cast_expression "(int *)(param_1 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 300)" (( "(") (binary_expression "param_1 + 300" (identifier "param_1") (+ "+") (number_literal "300")) () ")")))) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);\n        if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }\n        iVar7 = FUN_0002cea0(param_1);\n        if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);\n        if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }\n        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);\n        if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }\n        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);\n        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }\n        FUN_00033b40();\nLAB_0002f2ad:\n        *piVar8 = 0x2a90;\n        goto LAB_0002d320;\n      }" ({ "{") (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x95)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x95") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          uVar11 = *(undefined4 *)(param_1 + 0x248);\n          uVar17 = FUN_00018b50(uVar11,0x96);\n          iVar7 = FUN_0006c310(uVar17,uVar11);\n          *(int *)(param_1 + 0x18c) = iVar7;\n          if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }\n        }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "uVar17 = FUN_00018b50(uVar11,0x96);" (assignment_expression "uVar17 = FUN_00018b50(uVar11,0x96)" (identifier "uVar17") (= "=") (call_expression "FUN_00018b50(uVar11,0x96)" (identifier "FUN_00018b50") (argument_list "(uVar11,0x96)" (( "(") (identifier "uVar11") (, ",") (number_literal "0x96") () ")")))) (; ";")) (expression_statement "iVar7 = FUN_0006c310(uVar17,uVar11);" (assignment_expression "iVar7 = FUN_0006c310(uVar17,uVar11)" (identifier "iVar7") (= "=") (call_expression "FUN_0006c310(uVar17,uVar11)" (identifier "FUN_0006c310") (argument_list "(uVar17,uVar11)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x18c) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x18c) = iVar7" (pointer_expression "*(int *)(param_1 + 0x18c)" (* "*") (cast_expression "(int *)(param_1 + 0x18c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }\n          else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;\n          }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)\n            ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""X11 forwarding not enabled: unable to initialise X display"" (" """) (string_content "X11 forwarding not enabled: unable to initialise X display") (" """)) (, ",") (identifier "uVar11") (, ",") (identifier "uVar11") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" (else "else") (compound_statement "{\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);\n            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);\n            *(int *)(param_1 + 400) = iVar7;\n            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);\n            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);\n          }" ({ "{") (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" (identifier "uVar11") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x97)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x97") () ")")))) (; ";")) (expression_statement "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);" (assignment_expression "iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" (identifier "iVar7") (= "=") (call_expression "FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11)" (identifier "FUN_0006bfc0") (argument_list "(*(undefined4 *)(param_1 + 0x194),uVar11)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x194)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x194)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x194)" (( "(") (binary_expression "param_1 + 0x194" (identifier "param_1") (+ "+") (number_literal "0x194")) () ")")))) (, ",") (identifier "uVar11") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 400) = iVar7;" (assignment_expression "*(int *)(param_1 + 400) = iVar7" (pointer_expression "*(int *)(param_1 + 400)" (* "*") (cast_expression "(int *)(param_1 + 400)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 400)" (( "(") (binary_expression "param_1 + 400" (identifier "param_1") (+ "+") (number_literal "400")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);" (assignment_expression "*(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c)" (pointer_expression "*(undefined4 *)(iVar7 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x1c)" (( "(") (binary_expression "iVar7 + 0x1c" (identifier "iVar7") (+ "+") (number_literal "0x1c")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x18c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x18c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x18c)" (( "(") (binary_expression "param_1 + 0x18c" (identifier "param_1") (+ "+") (number_literal "0x18c")) () ")"))))) (; ";")) (expression_statement "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0)" (identifier "FUN_00034380") (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar7 = FUN_0002cea0(param_1);" (assignment_expression "iVar7 = FUN_0002cea0(param_1)" (identifier "iVar7") (= "=") (call_expression "FUN_0002cea0(param_1)" (identifier "FUN_0002cea0") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" ({ "{") (expression_statement "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0)" (identifier "FUN_000344e0") (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x16)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x16") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);\n        }" ({ "{") (expression_statement "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0)" (identifier "FUN_000345d0") (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);" (call_expression "FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0)" (identifier "FUN_00034840") (argument_list "(*(undefined4 *)(param_1 + 0x128),0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (if_statement "if (*(int *)(param_1 + 0x174) == 0) {\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }\n        else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);\n          uVar11 = 0x14;\n        }" ({ "{") (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" (identifier "local_64") (= "=") (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2b)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2b") () ")"))))) (; ";")) (expression_statement "uVar11 = 0x14;" (assignment_expression "uVar11 = 0x14" (identifier "uVar11") (= "=") (number_literal "0x14")) (; ";")) (} "}")) (else_clause "else {\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" (else "else") (compound_statement "{\nLAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);\n          uVar11 = 0x15;\n        }" ({ "{") (labeled_statement "LAB_0002feab:\n          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" (statement_identifier "LAB_0002feab") (: ":") (expression_statement "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);" (assignment_expression "local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" (identifier "local_64") (= "=") (cast_expression "(int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2c)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2c") () ")"))))) (; ";"))) (expression_statement "uVar11 = 0x15;" (assignment_expression "uVar11 = 0x15" (identifier "uVar11") (= "=") (number_literal "0x15")) (; ";")) (} "}")))) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11)" (identifier "FUN_00018b50") (argument_list "(*(undefined4 *)(param_1 + 0x248),uVar11)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (identifier "uVar11") () ")"))))) (; ";")) (if_statement "if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }\n        else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" (if "if") (parenthesized_expression "((local_64 == (int *)0x0) && (*pcVar16 == '\0'))" (( "(") (binary_expression "(local_64 == (int *)0x0) && (*pcVar16 == '\0')" (parenthesized_expression "(local_64 == (int *)0x0)" (( "(") (binary_expression "local_64 == (int *)0x0" (identifier "local_64") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*pcVar16 == '\0')" (( "(") (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n        }" ({ "{") (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" (identifier "iVar7") (= "=") (call_expression "FUN_0002ab60(0)" (identifier "FUN_0002ab60") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (} "}")) (else_clause "else {\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" (else "else") (compound_statement "{\n          iVar7 = FUN_0002ab60(0);\n          piVar8[0x2e] = iVar7;\n          FUN_00029e50();\n        }" ({ "{") (expression_statement "iVar7 = FUN_0002ab60(0);" (assignment_expression "iVar7 = FUN_0002ab60(0)" (identifier "iVar7") (= "=") (call_expression "FUN_0002ab60(0)" (identifier "FUN_0002ab60") (argument_list "(0)" (( "(") (number_literal "0") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_0002f2ad:\n        *piVar8 = 0x2a90;" (statement_identifier "LAB_0002f2ad") (: ":") (expression_statement "*piVar8 = 0x2a90;" (assignment_expression "*piVar8 = 0x2a90" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2a90")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x104) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x104) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x104)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x108) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x108) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x108)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x108)" (( "(") (binary_expression "param_1 + 0x108" (identifier "param_1") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0002db48:\n      *(undefined4 *)(param_1 + 0x144) = 3;" (statement_identifier "LAB_0002db48") (: ":") (expression_statement "*(undefined4 *)(param_1 + 0x144) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x144) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x144)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x144)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x144)" (( "(") (binary_expression "param_1 + 0x144" (identifier "param_1") (+ "+") (number_literal "0x144")) () ")")))) (= "=") (number_literal "3")) (; ";"))) (if_statement "if (*(int *)(param_1 + 0x148) != 0) {\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x148) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x148) != 0" (pointer_expression "*(int *)(param_1 + 0x148)" (* "*") (cast_expression "(int *)(param_1 + 0x148)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x148)" (( "(") (binary_expression "param_1 + 0x148" (identifier "param_1") (+ "+") (number_literal "0x148")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));\n      }" ({ "{") (expression_statement "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));" (call_expression "FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" (identifier "FUN_00036ab0") (argument_list "(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120))" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x11c)" (( "(") (binary_expression "param_1 + 0x11c" (identifier "param_1") (+ "+") (number_literal "0x11c")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x120)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x120)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x120)" (( "(") (binary_expression "param_1 + 0x120" (identifier "param_1") (+ "+") (number_literal "0x120")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x14c) != 0) {\n        FUN_0003a8b0(param_1,0xc);\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14c) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14c) != 0" (pointer_expression "*(int *)(param_1 + 0x14c)" (* "*") (cast_expression "(int *)(param_1 + 0x14c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14c)" (( "(") (binary_expression "param_1 + 0x14c" (identifier "param_1") (+ "+") (number_literal "0x14c")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0003a8b0(param_1,0xc);\n      }" ({ "{") (expression_statement "FUN_0003a8b0(param_1,0xc);" (call_expression "FUN_0003a8b0(param_1,0xc)" (identifier "FUN_0003a8b0") (argument_list "(param_1,0xc)" (( "(") (identifier "param_1") (, ",") (number_literal "0xc") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x14) != 0) {\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x14) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x14) != 0" (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0001a2d0(*(int *)(param_1 + 0x14));\n      }" ({ "{") (expression_statement "FUN_0001a2d0(*(int *)(param_1 + 0x14));" (call_expression "FUN_0001a2d0(*(int *)(param_1 + 0x14))" (identifier "FUN_0001a2d0") (argument_list "(*(int *)(param_1 + 0x14))" (( "(") (pointer_expression "*(int *)(param_1 + 0x14)" (* "*") (cast_expression "(int *)(param_1 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x14)" (( "(") (binary_expression "param_1 + 0x14" (identifier "param_1") (+ "+") (number_literal "0x14")) () ")")))) () ")"))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x100) = 1;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0002db95:\n      *piVar8 = 0x2abd;" (statement_identifier "LAB_0002db95") (: ":") (expression_statement "*piVar8 = 0x2abd;" (assignment_expression "*piVar8 = 0x2abd" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2abd")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "piVar9 = (int *)FUN_0001c990(1,0x5c);" (assignment_expression "piVar9 = (int *)FUN_0001c990(1,0x5c)" (identifier "piVar9") (= "=") (cast_expression "(int *)FUN_0001c990(1,0x5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c990(1,0x5c)" (identifier "FUN_0001c990") (argument_list "(1,0x5c)" (( "(") (number_literal "1") (, ",") (number_literal "0x5c") () ")"))))) (; ";")) (expression_statement "*(int **)(param_1 + 0x128) = piVar9;" (assignment_expression "*(int **)(param_1 + 0x128) = piVar9" (pointer_expression "*(int **)(param_1 + 0x128)" (* "*") (cast_expression "(int **)(param_1 + 0x128)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (= "=") (identifier "piVar9")) (; ";")) (expression_statement "*piVar9 = param_1;" (assignment_expression "*piVar9 = param_1" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (identifier "param_1")) (; ";")) (expression_statement "FUN_0002c3f0();" (call_expression "FUN_0002c3f0()" (identifier "FUN_0002c3f0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" (identifier "FUN_00018b50") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2e") () ")"))))) (; ";")) (if_statement "if (*pcVar16 == '\0') {\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }\n    else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" (if "if") (parenthesized_expression "(*pcVar16 == '\0')" (( "(") (binary_expression "*pcVar16 == '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar7 = FUN_0002aae0();\n      piVar8[0x2e] = iVar7;\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");\n      FUN_00033b40();\n      *(undefined4 *)(param_1 + 300) = 0;\n    }" ({ "{") (expression_statement "iVar7 = FUN_0002aae0();" (assignment_expression "iVar7 = FUN_0002aae0()" (identifier "iVar7") (= "=") (call_expression "FUN_0002aae0()" (identifier "FUN_0002aae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Opening session as main channel"" (" """) (string_content "Opening session as main channel") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 300) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 0" (pointer_expression "*(undefined4 *)(param_1 + 300)" (* "*") (cast_expression "(undefined4 *)(param_1 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 300)" (( "(") (binary_expression "param_1 + 300" (identifier "param_1") (+ "+") (number_literal "300")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" (else "else") (compound_statement "{\n      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);\n      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);\n      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");\n      *(undefined4 *)(param_1 + 300) = 1;\n    }" ({ "{") (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" (identifier "uVar11") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2f)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2f") () ")")))) (; ";")) (expression_statement "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);" (assignment_expression "uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" (identifier "uVar17") (= "=") (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e)" (identifier "FUN_00018b50") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x2e)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x2e") () ")")))) (; ";")) (expression_statement "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");" (call_expression "FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" (identifier "FUN_0002d130") (argument_list "(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x128)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x128)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (, ",") (identifier "uVar17") (, ",") (identifier "uVar11") (, ",") (string_literal ""main channel"" (" """) (string_content "main channel") (" """)) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 300) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 300) = 1" (pointer_expression "*(undefined4 *)(param_1 + 300)" (* "*") (cast_expression "(undefined4 *)(param_1 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 300)" (( "(") (binary_expression "param_1 + 300" (identifier "param_1") (+ "+") (number_literal "300")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (labeled_statement "LAB_0002e0c6:\n    *piVar8 = 0x2a03;" (statement_identifier "LAB_0002e0c6") (: ":") (expression_statement "*piVar8 = 0x2a03;" (assignment_expression "*piVar8 = 0x2a03" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2a03")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "iVar7 = *piVar8;" (assignment_expression "iVar7 = *piVar8" (identifier "iVar7") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (if_statement "if (iVar7 == 0x27b6) {\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0x27b6)" (( "(") (binary_expression "iVar7 == 0x27b6" (identifier "iVar7") (== "==") (number_literal "0x27b6")) () ")")) (compound_statement "{\n    if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }\n    if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }\n    iVar7 = piVar8[3];\nLAB_0002d2f8:\n    local_30 = (char *)0x0;\n    local_2c[0] = (char *)0x0;\n    if (iVar7 == 0) goto LAB_0002d310;\nLAB_0002d3e0:\n    iVar7 = param_1 + 0x178;\n    iVar5 = FUN_0001c7f0(iVar7);\n    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }\n    FUN_0001c7a0(iVar7);\n    if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }\n    if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 0;\n    if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }\n    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }\n    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }\n    if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }\n    *(undefined4 *)(param_1 + 0x188) = 2;\n    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n    piVar8[0xf] = (int)puVar10;\n    *puVar10 = 1;\n    uVar11 = FUN_0001caa0("SSH password");\n    puVar10[1] = uVar11;\n    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));\n    FUN_0001ce70(piVar8[0xf],uVar11,0);\n    iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }\n    iVar5 = piVar8[0xf];\n    if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }\nLAB_0002ea6c:\n    FUN_0001c2f0(iVar5);\nLAB_0002ea71:\n    FUN_00034b00(0xd,1);\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" ({ "{") (if_statement "if (param_4 == (int *)0x0) {\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002d664:\n      *piVar8 = 0x27b6;\n      goto LAB_0002d320;\n    }" ({ "{") (labeled_statement "LAB_0002d664:\n      *piVar8 = 0x27b6;" (statement_identifier "LAB_0002d664") (: ":") (expression_statement "*piVar8 = 0x27b6;" (assignment_expression "*piVar8 = 0x27b6" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x27b6")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (param_4[2] == 0x3c) {\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }\n    else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" (if "if") (parenthesized_expression "(param_4[2] == 0x3c)" (( "(") (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n      FUN_000273d0();\n      piVar8[0x34] = local_34;\n      sVar4 = piVar8[0x32];\n      piVar8[0x35] = (int)local_30;\n      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }\n    }" ({ "{") (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" (identifier "piVar8") ([ "[") (number_literal "0x34") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "sVar4 = piVar8[0x32];" (assignment_expression "sVar4 = piVar8[0x32]" (identifier "sVar4") (= "=") (subscript_expression "piVar8[0x32]" (identifier "piVar8") ([ "[") (number_literal "0x32") (] "]"))) (; ";")) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" (identifier "piVar8") ([ "[") (number_literal "0x35") (] "]")) (= "=") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) (; ";")) (if_statement "if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }\n      else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" (if "if") (parenthesized_expression "((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0))" (( "(") (binary_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&\n         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" (parenthesized_expression "(((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1]))" (( "(") (binary_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])" (parenthesized_expression "((local_34 == sVar4 + 2) && (*local_30 == '\x06'))" (( "(") (binary_expression "(local_34 == sVar4 + 2) && (*local_30 == '\x06')" (parenthesized_expression "(local_34 == sVar4 + 2)" (( "(") (binary_expression "local_34 == sVar4 + 2" (identifier "local_34") (== "==") (binary_expression "sVar4 + 2" (identifier "sVar4") (+ "+") (number_literal "2"))) () ")")) (&& "&&") (parenthesized_expression "(*local_30 == '\x06')" (( "(") (binary_expression "*local_30 == '\x06'" (pointer_expression "*local_30" (* "*") (identifier "local_30")) (== "==") (char_literal "'\x06'" (' "'") (escape_sequence "\x06") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(sVar4 == (int)local_30[1])" (( "(") (binary_expression "sVar4 == (int)local_30[1]" (identifier "sVar4") (== "==") (cast_expression "(int)local_30[1]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_30[1]" (identifier "local_30") ([ "[") (number_literal "1") (] "]")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)" (( "(") (comma_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0" (assignment_expression "iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" (identifier "iVar7") (= "=") (call_expression "memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4)" (identifier "memcmp") (argument_list "(local_30 + 2,(void *)piVar8[0x33],sVar4)" (( "(") (binary_expression "local_30 + 2" (identifier "local_30") (+ "+") (number_literal "2")) (, ",") (cast_expression "(void *)piVar8[0x33]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x33]" (identifier "piVar8") ([ "[") (number_literal "0x33") (] "]"))) (, ",") (identifier "sVar4") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);\n        piVar8[0x39] = iVar7;\n        if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }\n      }" ({ "{") (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(piVar8[0x30] + 0xc))\n                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0xc))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0xc)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0xc)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0xc)" (( "(") (binary_expression "piVar8[0x30] + 0xc" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x6a4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x6a4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6a4)" (( "(") (binary_expression "param_1 + 0x6a4" (identifier "param_1") (+ "+") (number_literal "0x6a4")) () ")")))) (, ",") (binary_expression "piVar8 + 0x38" (identifier "piVar8") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }\n        else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);\n          piVar8[0x39] = iVar7;\n          if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }\n        }" ({ "{") (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x1c))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x1c)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x1c)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x1c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x1c)" (( "(") (binary_expression "piVar8[0x30] + 0x1c" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x1c")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8 + 0x31)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (binary_expression "piVar8 + 0x31" (identifier "piVar8") (+ "+") (number_literal "0x31")) () ")")))) (; ";")) (expression_statement "piVar8[0x39] = iVar7;" (assignment_expression "piVar8[0x39] = iVar7" (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 == 0) {\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }\n          else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            piVar8[0x34] = 0;\n            piVar8[0x35] = 0;\n            piVar8[0x36] = 0;\n            piVar8[0x37] = 0;\nLAB_0002efad:\n            local_64 = piVar8 + 0x31;\n            pcVar2 = *(code **)(piVar8[0x30] + 0x14);\n            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);\n            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );\n            piVar8[0x39] = uVar12;\n            if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }\nLAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }\n            local_60 = (char **)(piVar8 + 0x38);\n            local_64 = piVar8 + 0x31;\n            (**(code **)(iVar7 + 0x10))(iVar7,local_60);\n            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);\n          }" ({ "{") (expression_statement "piVar8[0x34] = 0;" (assignment_expression "piVar8[0x34] = 0" (subscript_expression "piVar8[0x34]" (identifier "piVar8") ([ "[") (number_literal "0x34") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x35] = 0;" (assignment_expression "piVar8[0x35] = 0" (subscript_expression "piVar8[0x35]" (identifier "piVar8") ([ "[") (number_literal "0x35") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x36] = 0;" (assignment_expression "piVar8[0x36] = 0" (subscript_expression "piVar8[0x36]" (identifier "piVar8") ([ "[") (number_literal "0x36") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar8[0x37] = 0;" (assignment_expression "piVar8[0x37] = 0" (subscript_expression "piVar8[0x37]" (identifier "piVar8") ([ "[") (number_literal "0x37") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002efad:\n            local_64 = piVar8 + 0x31;" (statement_identifier "LAB_0002efad") (: ":") (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" (identifier "local_64") (= "=") (binary_expression "piVar8 + 0x31" (identifier "piVar8") (+ "+") (number_literal "0x31"))) (; ";"))) (expression_statement "pcVar2 = *(code **)(piVar8[0x30] + 0x14);" (assignment_expression "pcVar2 = *(code **)(piVar8[0x30] + 0x14)" (identifier "pcVar2") (= "=") (pointer_expression "*(code **)(piVar8[0x30] + 0x14)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x14)" (( "(") (binary_expression "piVar8[0x30] + 0x14" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);" (assignment_expression "uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" (identifier "uVar11") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x28)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x28") () ")")))) (; ";")) (expression_statement "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              );" (assignment_expression "uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" (identifier "uVar12") (= "=") (call_expression "(*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" (parenthesized_expression "(*pcVar2)" (( "(") (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) () ")")) (argument_list "(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36\n                              )" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (identifier "local_64") (, ",") (subscript_expression "piVar8[0x38]" (identifier "piVar8") ([ "[") (number_literal "0x38") (] "]")) (, ",") (identifier "uVar11") (, ",") (binary_expression "piVar8 + 0x34" (identifier "piVar8") (+ "+") (number_literal "0x34")) (, ",") (binary_expression "piVar8 + 0x36" (identifier "piVar8") (+ "+") (number_literal "0x36")) () ")")))) (; ";")) (expression_statement "piVar8[0x39] = uVar12;" (assignment_expression "piVar8[0x39] = uVar12" (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (if_statement "if (uVar12 < 2) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }\n            else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" (if "if") (parenthesized_expression "(uVar12 < 2)" (( "(") (binary_expression "uVar12 < 2" (identifier "uVar12") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);\n              if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }\n              iVar7 = piVar8[0x39];\n              if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }\n            }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",\n                           extraout_ECX,extraout_ECX)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication initialised"" (" """) (string_content "GSSAPI authentication initialised") (" """)) (, ",") (identifier "extraout_ECX") (, ",") (identifier "extraout_ECX") () ")"))) (; ";")) (if_statement "if (piVar8[0x36] != 0) {\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" (if "if") (parenthesized_expression "(piVar8[0x36] != 0)" (( "(") (binary_expression "piVar8[0x36] != 0" (subscript_expression "piVar8[0x36]" (identifier "piVar8") ([ "[") (number_literal "0x36") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                puVar10 = (undefined4 *)FUN_00029d20();\n                piVar8[0x2e] = (int)puVar10;\n                local_24 = 0;\n                FUN_00029c40();\n                puVar10[6] = *puVar10;\n                FUN_00029dc0();\n                FUN_00033b40();\n                (**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);\n              }" ({ "{") (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_00029d20()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);" (call_expression "(**(code **)(piVar8[0x30] + 0x18))\n                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x18))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x18)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x18)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x18)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x18)" (( "(") (binary_expression "piVar8[0x30] + 0x18" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (binary_expression "piVar8 + 0x36" (identifier "piVar8") (+ "+") (number_literal "0x36")) (, ",") (identifier "extraout_EDX") (, ",") (identifier "extraout_EDX") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]"))) (; ";")) (if_statement "if (iVar7 == 1) {\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" (if "if") (parenthesized_expression "(iVar7 == 1)" (( "(") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0002fcf7:\n                *piVar8 = 0x2807;\n                goto LAB_0002d320;\n              }" ({ "{") (labeled_statement "LAB_0002fcf7:\n                *piVar8 = 0x2807;" (statement_identifier "LAB_0002fcf7") (: ":") (expression_statement "*piVar8 = 0x2807;" (assignment_expression "*piVar8 = 0x2807" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2807")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" (else "else") (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);\n              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);\n              if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }\n            }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "GSSAPI authentication initialisation failed",uVar12,uVar12)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication initialisation failed"" (" """) (string_content "GSSAPI authentication initialisation failed") (" """)) (, ",") (identifier "uVar12") (, ",") (identifier "uVar12") () ")"))) (; ";")) (expression_statement "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);" (assignment_expression "iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x2c))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x2c)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x2c)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x2c)" (( "(") (binary_expression "piVar8[0x30] + 0x2c" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (subscript_expression "piVar8[0x31]" (identifier "piVar8") ([ "[") (number_literal "0x31") (] "]")) (, ",") (binary_expression "piVar8 + 0x32" (identifier "piVar8") (+ "+") (number_literal "0x32")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }\n              else {\n                iVar7 = piVar8[0x39];\n              }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);\n                FUN_0001d220(piVar8[0x33]);\n                iVar7 = piVar8[0x39];\n              }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (subscript_expression "piVar8[0x33]" (identifier "piVar8") ([ "[") (number_literal "0x33") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x33]);" (call_expression "FUN_0001d220(piVar8[0x33])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x33])" (( "(") (subscript_expression "piVar8[0x33]" (identifier "piVar8") ([ "[") (number_literal "0x33") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n                iVar7 = piVar8[0x39];\n              }" (else "else") (compound_statement "{\n                iVar7 = piVar8[0x39];\n              }" ({ "{") (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]"))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0002f049:\n            if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" (statement_identifier "LAB_0002f049") (: ":") (if_statement "if (iVar7 == 0) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }\n            else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );\n              piVar9 = (int *)FUN_00029d20();\n              iVar7 = *piVar9;\n              piVar8[0x2e] = (int)piVar9;\n              local_24 = 0;\n              FUN_00029c40();\n              piVar9[6] = *piVar9;\n              FUN_00029dc0();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);\n              FUN_00029c40();\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              iVar5 = ((int *)piVar8[0x2e])[4];\n              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;\n              piVar8[0x33] = iVar5 + iVar7;\n              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);\n              puVar10 = (undefined4 *)FUN_00029d20();\n              piVar8[0x2e] = (int)puVar10;\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              FUN_00033b40();\n              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);\n              piVar8[3] = 0;\n              iVar7 = piVar8[0x30];\n            }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"\n                          )" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication loop finished OK"" (" """) (string_content "GSSAPI authentication loop finished OK") (" """)) () ")"))) (; ";")) (expression_statement "piVar9 = (int *)FUN_00029d20();" (assignment_expression "piVar9 = (int *)FUN_00029d20()" (identifier "piVar9") (= "=") (cast_expression "(int *)FUN_00029d20()" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "iVar7 = *piVar9;" (assignment_expression "iVar7 = *piVar9" (identifier "iVar7") (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "piVar8[0x2e] = (int)piVar9;" (assignment_expression "piVar8[0x2e] = (int)piVar9" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar9[6] = *piVar9;" (assignment_expression "piVar9[6] = *piVar9" (subscript_expression "piVar9[6]" (identifier "piVar9") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32)" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,0x32)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_2c[0]._1_3_,0x32)" (identifier "CONCAT31") (argument_list "(local_2c[0]._1_3_,0x32)" (( "(") (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "0x32") () ")"))))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" (identifier "iVar5") (= "=") (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" (( "(") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]"))) () ")")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;" (assignment_expression "piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7" (subscript_expression "piVar8[0x32]" (identifier "piVar8") ([ "[") (number_literal "0x32") (] "]")) (= "=") (binary_expression "*(int *)piVar8[0x2e] - iVar7" (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (- "-") (identifier "iVar7"))) (; ";")) (expression_statement "piVar8[0x33] = iVar5 + iVar7;" (assignment_expression "piVar8[0x33] = iVar5 + iVar7" (subscript_expression "piVar8[0x33]" (identifier "piVar8") ([ "[") (number_literal "0x33") (] "]")) (= "=") (binary_expression "iVar5 + iVar7" (identifier "iVar5") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x24))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x24)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x24)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x24)" (( "(") (binary_expression "piVar8[0x30] + 0x24" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x24")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (subscript_expression "piVar8[0x31]" (identifier "piVar8") ([ "[") (number_literal "0x31") (] "]")) (, ",") (binary_expression "piVar8 + 0x32" (identifier "piVar8") (+ "+") (number_literal "0x32")) (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)FUN_00029d20();" (assignment_expression "puVar10 = (undefined4 *)FUN_00029d20()" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_00029d20()" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "piVar8[0x2e] = (int)puVar10;" (assignment_expression "piVar8[0x2e] = (int)puVar10" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);" (call_expression "(**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x28))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x28)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x28)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x28)" (( "(") (binary_expression "piVar8[0x30] + 0x28" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],local_2c)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (identifier "local_2c") () ")"))) (; ";")) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]"))) (; ";")) (} "}")) (else_clause "else {\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" (else "else") (compound_statement "{\nLAB_0002e970:\n              iVar7 = piVar8[0x30];\n            }" ({ "{") (labeled_statement "LAB_0002e970:\n              iVar7 = piVar8[0x30];" (statement_identifier "LAB_0002e970") (: ":") (expression_statement "iVar7 = piVar8[0x30];" (assignment_expression "iVar7 = piVar8[0x30]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]"))) (; ";"))) (} "}"))))) (expression_statement "local_60 = (char **)(piVar8 + 0x38);" (assignment_expression "local_60 = (char **)(piVar8 + 0x38)" (identifier "local_60") (= "=") (cast_expression "(char **)(piVar8 + 0x38)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8 + 0x38)" (( "(") (binary_expression "piVar8 + 0x38" (identifier "piVar8") (+ "+") (number_literal "0x38")) () ")")))) (; ";")) (expression_statement "local_64 = piVar8 + 0x31;" (assignment_expression "local_64 = piVar8 + 0x31" (identifier "local_64") (= "=") (binary_expression "piVar8 + 0x31" (identifier "piVar8") (+ "+") (number_literal "0x31"))) (; ";")) (expression_statement "(**(code **)(iVar7 + 0x10))(iVar7,local_60);" (call_expression "(**(code **)(iVar7 + 0x10))(iVar7,local_60)" (parenthesized_expression "(**(code **)(iVar7 + 0x10))" (( "(") (pointer_expression "**(code **)(iVar7 + 0x10)" (* "*") (pointer_expression "*(code **)(iVar7 + 0x10)" (* "*") (cast_expression "(code **)(iVar7 + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(iVar7,local_60)" (( "(") (identifier "iVar7") (, ",") (identifier "local_60") () ")"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);" (call_expression "(**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x20))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x20)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x20)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x20)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x20)" (( "(") (binary_expression "piVar8[0x30] + 0x20" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x20")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],local_64)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (identifier "local_64") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" (else "else") (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);\n            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);\n          }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "GSSAPI authentication failed to get credentials",iVar7,iVar7)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication failed to get credentials"" (" """) (string_content "GSSAPI authentication failed to get credentials") (" """)) (, ",") (identifier "iVar7") (, ",") (identifier "iVar7") () ")"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);" (call_expression "(**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 0x10))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 0x10)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 0x10)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 0x10)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 0x10)" (( "(") (binary_expression "piVar8[0x30] + 0x10" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8 + 0x38)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (binary_expression "piVar8 + 0x38" (identifier "piVar8") (+ "+") (number_literal "0x38")) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" (else "else") (if_statement "if (iVar7 == 3) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }\n        else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" (if "if") (parenthesized_expression "(iVar7 == 3)" (( "(") (binary_expression "iVar7 == 3" (identifier "iVar7") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);\n        }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "GSSAPI import name failed - Bad service name",3,3)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI import name failed - Bad service name"" (" """) (string_content "GSSAPI import name failed - Bad service name") (" """)) (, ",") (number_literal "3") (, ",") (number_literal "3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" (else "else") (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);\n        }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI import name failed"" (" """) (string_content "GSSAPI import name failed") (" """)) (, ",") (identifier "iVar7") (, ",") (identifier "iVar7") () ")"))) (; ";")) (} "}")))))) (} "}")) (else_clause "else {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" (else "else") (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");\n      }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                     "GSSAPI authentication - wrong response from server")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication - wrong response from server"" (" """) (string_content "GSSAPI authentication - wrong response from server") (" """)) () ")"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" (else "else") (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");\n    }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication request refused"" (" """) (string_content "GSSAPI authentication request refused") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (labeled_statement "LAB_0002d2f8:\n    local_30 = (char *)0x0;" (statement_identifier "LAB_0002d2f8") (: ":") (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" (identifier "local_30") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";"))) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0002d310;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d310;" (goto "goto") (statement_identifier "LAB_0002d310") (; ";"))) (labeled_statement "LAB_0002d3e0:\n    iVar7 = param_1 + 0x178;" (statement_identifier "LAB_0002d3e0") (: ":") (expression_statement "iVar7 = param_1 + 0x178;" (assignment_expression "iVar7 = param_1 + 0x178" (identifier "iVar7") (= "=") (binary_expression "param_1 + 0x178" (identifier "param_1") (+ "+") (number_literal "0x178"))) (; ";"))) (expression_statement "iVar5 = FUN_0001c7f0(iVar7);" (assignment_expression "iVar5 = FUN_0001c7f0(iVar7)" (identifier "iVar5") (= "=") (call_expression "FUN_0001c7f0(iVar7)" (identifier "FUN_0001c7f0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (if_statement "if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" (if "if") (parenthesized_expression "((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0))" (( "(") (binary_expression "(iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)" (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(((byte)DAT_000a5b0c & 5) != 0)" (( "(") (binary_expression "((byte)DAT_000a5b0c & 5) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 5)" (( "(") (binary_expression "(byte)DAT_000a5b0c & 5" (cast_expression "(byte)DAT_000a5b0c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000a5b0c")) (& "&") (number_literal "5")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pcVar16 = (char *)FUN_0001c990(iVar5,1);\n      FUN_0001c8e0(iVar7,pcVar16,iVar5);\n      puVar15 = PTR_stderr_000a4fa0;\n      if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }\n      FUN_0001d220(pcVar16);\n    }" ({ "{") (expression_statement "pcVar16 = (char *)FUN_0001c990(iVar5,1);" (assignment_expression "pcVar16 = (char *)FUN_0001c990(iVar5,1)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_0001c990(iVar5,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c990(iVar5,1)" (identifier "FUN_0001c990") (argument_list "(iVar5,1)" (( "(") (identifier "iVar5") (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "FUN_0001c8e0(iVar7,pcVar16,iVar5);" (call_expression "FUN_0001c8e0(iVar7,pcVar16,iVar5)" (identifier "FUN_0001c8e0") (argument_list "(iVar7,pcVar16,iVar5)" (( "(") (identifier "iVar7") (, ",") (identifier "pcVar16") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "puVar15 = PTR_stderr_000a4fa0;" (assignment_expression "puVar15 = PTR_stderr_000a4fa0" (identifier "puVar15") (= "=") (identifier "PTR_stderr_000a4fa0")) (; ";")) (if_statement "if (((byte)DAT_000a5b0c & 2) == 0) {\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }\n      else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" (if "if") (parenthesized_expression "(((byte)DAT_000a5b0c & 2) == 0)" (( "(") (binary_expression "((byte)DAT_000a5b0c & 2) == 0" (parenthesized_expression "((byte)DAT_000a5b0c & 2)" (( "(") (binary_expression "(byte)DAT_000a5b0c & 2" (cast_expression "(byte)DAT_000a5b0c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000a5b0c")) (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);\n      }" ({ "{") (expression_statement "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);" (call_expression "FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" (identifier "FUN_00067560") (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (identifier "pcVar16") (, ",") (identifier "iVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" (else "else") (compound_statement "{\n        pcVar21 = pcVar16;\n        if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }\n      }" ({ "{") (expression_statement "pcVar21 = pcVar16;" (assignment_expression "pcVar21 = pcVar16" (identifier "pcVar21") (= "=") (identifier "pcVar16")) (; ";")) (if_statement "if (0 < iVar5) {\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n          do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);\n        }" ({ "{") (do_statement "do {\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          } while (pcVar21 != pcVar16 + iVar5);" (do "do") (compound_statement "{\n            cVar1 = *pcVar21;\n            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }\n            pcVar21 = pcVar21 + 1;\n          }" ({ "{") (expression_statement "cVar1 = *pcVar21;" (assignment_expression "cVar1 = *pcVar21" (identifier "cVar1") (= "=") (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21"))) (; ";")) (if_statement "if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" (if "if") (parenthesized_expression "((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))))" (( "(") (binary_expression "(cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" (parenthesized_expression "(cVar1 != '\r')" (( "(") (binary_expression "cVar1 != '\r'" (identifier "cVar1") (!= "!=") (char_literal "'\r'" (' "'") (escape_sequence "\r") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))" (( "(") (parenthesized_expression "(cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0))" (( "(") (binary_expression "cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)" (binary_expression "cVar1 == '\n'" (identifier "cVar1") (== "==") (char_literal "'\n'" (' "'") (escape_sequence "\n") (' "'"))) (|| "||") (parenthesized_expression "(((int)cVar1 & 0x60U) != 0)" (( "(") (binary_expression "((int)cVar1 & 0x60U) != 0" (parenthesized_expression "((int)cVar1 & 0x60U)" (( "(") (binary_expression "(int)cVar1 & 0x60U" (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")) (& "&") (number_literal "0x60U")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n              fputc((int)cVar1,*(FILE **)puVar15);\n            }" ({ "{") (expression_statement "fputc((int)cVar1,*(FILE **)puVar15);" (call_expression "fputc((int)cVar1,*(FILE **)puVar15)" (identifier "fputc") (argument_list "((int)cVar1,*(FILE **)puVar15)" (( "(") (cast_expression "(int)cVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "cVar1")) (, ",") (pointer_expression "*(FILE **)puVar15" (* "*") (cast_expression "(FILE **)puVar15" (( "(") (type_descriptor "FILE **" (type_identifier "FILE") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (identifier "puVar15"))) () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar21 = pcVar21 + 1;" (assignment_expression "pcVar21 = pcVar21 + 1" (identifier "pcVar21") (= "=") (binary_expression "pcVar21 + 1" (identifier "pcVar21") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar21 != pcVar16 + iVar5)" (( "(") (binary_expression "pcVar21 != pcVar16 + iVar5" (identifier "pcVar21") (!= "!=") (binary_expression "pcVar16 + iVar5" (identifier "pcVar16") (+ "+") (identifier "iVar5"))) () ")")) (; ";")) (} "}"))) (} "}")))) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" (identifier "FUN_0001d220") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0001c7a0(iVar7);" (call_expression "FUN_0001c7a0(iVar7)" (identifier "FUN_0001c7a0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (if_statement "if (param_4[2] == 0x34) {\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" (if "if") (parenthesized_expression "(param_4[2] == 0x34)" (( "(") (binary_expression "param_4[2] == 0x34" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x34")) () ")")) (compound_statement "{\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");\n      piVar8[0xe] = 1;\n      piVar8[0xd] = 1;\n      goto LAB_0002d9b1;\n    }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Access granted")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Access granted"" (" """) (string_content "Access granted") (" """)) () ")"))) (; ";")) (expression_statement "piVar8[0xe] = 1;" (assignment_expression "piVar8[0xe] = 1" (subscript_expression "piVar8[0xe]" (identifier "piVar8") ([ "[") (number_literal "0xe") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar8[0xd] = 1;" (assignment_expression "piVar8[0xd] = 1" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002d9b1;" (goto "goto") (statement_identifier "LAB_0002d9b1") (; ";")) (} "}"))) (if_statement "if (param_4[2] == 0x33) {\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }\n    else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" (if "if") (parenthesized_expression "(param_4[2] == 0x33)" (( "(") (binary_expression "param_4[2] == 0x33" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x33")) () ")")) (compound_statement "{\n      piVar8[3] = 0;\n      FUN_000273d0();\n      iVar7 = param_4[6];\n      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }\n      iVar7 = FUN_0002bed0();\n      piVar8[5] = iVar7;\n      iVar7 = FUN_0002bed0();\n      piVar8[6] = iVar7;\n      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);\n      if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }\n      piVar8[7] = uVar12;\n      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);\n      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }\n    }" ({ "{") (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = param_4[6];" (assignment_expression "iVar7 = param_4[6]" (identifier "iVar7") (= "=") (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (if_statement "if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }\n      else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" (if "if") (parenthesized_expression "((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'))" (( "(") (binary_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0) ||\n         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" (parenthesized_expression "(*param_4 == iVar7 || *param_4 - iVar7 < 0)" (( "(") (binary_expression "*param_4 == iVar7 || *param_4 - iVar7 < 0" (binary_expression "*param_4 == iVar7" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (== "==") (identifier "iVar7")) (|| "||") (binary_expression "*param_4 - iVar7 < 0" (binary_expression "*param_4 - iVar7" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (- "-") (identifier "iVar7")) (< "<") (number_literal "0"))) () ")")) (|| "||") (parenthesized_expression "(cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')" (( "(") (comma_expression "cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "cVar1 = *(char *)(param_4[5] + iVar7)" (identifier "cVar1") (= "=") (pointer_expression "*(char *)(param_4[5] + iVar7)" (* "*") (cast_expression "(char *)(param_4[5] + iVar7)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[5] + iVar7)" (( "(") (binary_expression "param_4[5] + iVar7" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (+ "+") (identifier "iVar7")) () ")"))))) (, ",") (comma_expression "param_4[6] = iVar7 + 1, cVar1 == '\0'" (assignment_expression "param_4[6] = iVar7 + 1" (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (, ",") (binary_expression "cVar1 == '\0'" (identifier "cVar1") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")"))) () ")")) (compound_statement "{\n        iVar7 = piVar8[1];\n        if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }\n      }" ({ "{") (expression_statement "iVar7 = piVar8[1];" (assignment_expression "iVar7 = piVar8[1]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar7 != 0) {\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }\n        }" ({ "{") (if_statement "if (iVar7 - 2U < 2) {\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }\n          else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar7 - 2U < 2)" (( "(") (binary_expression "iVar7 - 2U < 2" (binary_expression "iVar7 - 2U" (identifier "iVar7") (- "-") (number_literal "2U")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n            if (iVar7 == 2) {\n              FUN_00029500();\n            }\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");\n          }" ({ "{") (if_statement "if (iVar7 == 2) {\n              FUN_00029500();\n            }" (if "if") (parenthesized_expression "(iVar7 == 2)" (( "(") (binary_expression "iVar7 == 2" (identifier "iVar7") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n              FUN_00029500();\n            }" ({ "{") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Server refused our key")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Server refused our key"" (" """) (string_content "Server refused our key") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (else "else") (if_statement "if (iVar7 == 1) {\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }\n          else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar7 == 1)" (( "(") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n            FUN_00029500();\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");\n          }" ({ "{") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused public-key signature despite accepting key!")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Server refused public-key signature despite accepting key!"" (" """) (string_content "Server refused public-key signature despite accepting key!") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (else "else") (if_statement "if (iVar7 == 7) {\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }\n          else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar7 == 7)" (( "(") (binary_expression "iVar7 == 7" (identifier "iVar7") (== "==") (number_literal "7")) () ")")) (compound_statement "{\n            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");\n          }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                         "Server refused keyboard-interactive authentication")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Server refused keyboard-interactive authentication"" (" """) (string_content "Server refused keyboard-interactive authentication") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (else "else") (if_statement "if (iVar7 != 5) {\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" (if "if") (parenthesized_expression "(iVar7 != 5)" (( "(") (binary_expression "iVar7 != 5" (identifier "iVar7") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n            if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }\n          }" ({ "{") (if_statement "if (iVar7 == 6) {\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }\n            else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" (if "if") (parenthesized_expression "(iVar7 == 6)" (( "(") (binary_expression "iVar7 == 6" (identifier "iVar7") (== "==") (number_literal "6")) () ")")) (compound_statement "{\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);\n              FUN_00029500();\n            }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                           "Keyboard-interactive authentication failed",6,6)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Keyboard-interactive authentication failed"" (" """) (string_content "Keyboard-interactive authentication failed") (" """)) (, ",") (number_literal "6") (, ",") (number_literal "6") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (else_clause "else {\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" (else "else") (compound_statement "{\n              if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");\n              FUN_00029500();\n              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);\n              if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }\n            }" ({ "{") (if_statement "if (iVar7 != 4) {\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" (if "if") (parenthesized_expression "(iVar7 != 4)" (( "(") (binary_expression "iVar7 != 4" (identifier "iVar7") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                    \n                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");\n              }" ({ "{") (expression_statement "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");" (call_expression "__assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" (identifier "__assert_fail") (argument_list "("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn")" (( "(") (string_literal ""s->type == AUTH_TYPE_PASSWORD"" (" """) (string_content "s->type == AUTH_TYPE_PASSWORD") (" """)) (, ",") (string_literal ""ssh.c"" (" """) (string_content "ssh.c") (" """)) (, ",") (number_literal "0x2600") (, ",") (string_literal ""do_ssh2_authconn"" (" """) (string_content "do_ssh2_authconn") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Password authentication failed")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Password authentication failed"" (" """) (string_content "Password authentication failed") (" """)) () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x1e)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x1e") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) {\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                uVar11 = *(undefined4 *)(param_1 + 0x248);\n                piVar8[0xd] = 0;\n                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;\n                goto LAB_0002d7f9;\n              }" ({ "{") (expression_statement "uVar11 = *(undefined4 *)(param_1 + 0x248);" (assignment_expression "uVar11 = *(undefined4 *)(param_1 + 0x248)" (identifier "uVar11") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")"))))) (; ";")) (expression_statement "piVar8[0xd] = 0;" (assignment_expression "piVar8[0xd] = 0" (subscript_expression "piVar8[0xd]" (identifier "piVar8") ([ "[") (number_literal "0xd") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))\n                goto LAB_0002d7cb;" (if "if") (parenthesized_expression "((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))" (( "(") (binary_expression "(piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" (parenthesized_expression "(piVar8[0x13] == 0)" (( "(") (binary_expression "piVar8[0x13] == 0" (subscript_expression "piVar8[0x13]" (identifier "piVar8") ([ "[") (number_literal "0x13") (] "]")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0" (assignment_expression "iVar7 = FUN_000189a0(uVar11,0x1e)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(uVar11,0x1e)" (identifier "FUN_000189a0") (argument_list "(uVar11,0x1e)" (( "(") (identifier "uVar11") (, ",") (number_literal "0x1e") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0002d7cb;" (goto "goto") (statement_identifier "LAB_0002d7cb") (; ";"))) (goto_statement "goto LAB_0002d7f9;" (goto "goto") (statement_identifier "LAB_0002d7f9") (; ";")) (} "}"))) (} "}")))) (} "}"))))))))) (} "}"))) (} "}")) (else_clause "else {\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" (else "else") (compound_statement "{\n        FUN_00029500();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");\n      }" ({ "{") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Further authentication required")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Further authentication required"" (" """) (string_content "Further authentication required") (" """)) () ")"))) (; ";")) (} "}")))) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" (identifier "iVar7") (= "=") (call_expression "FUN_0002bed0()" (identifier "FUN_0002bed0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[5] = iVar7;" (assignment_expression "piVar8[5] = iVar7" (subscript_expression "piVar8[5]" (identifier "piVar8") ([ "[") (number_literal "5") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" (identifier "iVar7") (= "=") (call_expression "FUN_0002bed0()" (identifier "FUN_0002bed0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[6] = iVar7;" (assignment_expression "piVar8[6] = iVar7" (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);" (assignment_expression "uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" (identifier "uVar12") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x26)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x26") () ")")))) (; ";")) (if_statement "if (uVar12 != 0) {\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" (if "if") (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar7 = FUN_0002bed0();\n        uVar12 = (uint)(iVar7 != 0);\n      }" ({ "{") (expression_statement "iVar7 = FUN_0002bed0();" (assignment_expression "iVar7 = FUN_0002bed0()" (identifier "iVar7") (= "=") (call_expression "FUN_0002bed0()" (identifier "FUN_0002bed0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar12 = (uint)(iVar7 != 0);" (assignment_expression "uVar12 = (uint)(iVar7 != 0)" (identifier "uVar12") (= "=") (call_expression "(uint)(iVar7 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")))) (; ";")) (} "}"))) (expression_statement "piVar8[7] = uVar12;" (assignment_expression "piVar8[7] = uVar12" (subscript_expression "piVar8[7]" (identifier "piVar8") ([ "[") (number_literal "7") (] "]")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);" (assignment_expression "iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" (identifier "iVar7") (= "=") (call_expression "FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27)" (identifier "FUN_000189a0") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x27)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x27") () ")")))) (; ";")) (if_statement "if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {\n        piVar8[10] = 0;\n      }\n      else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" (if "if") (parenthesized_expression "((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0))" (( "(") (binary_expression "(iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = FUN_0002bed0(), iVar7 == 0)" (( "(") (comma_expression "iVar7 = FUN_0002bed0(), iVar7 == 0" (assignment_expression "iVar7 = FUN_0002bed0()" (identifier "iVar7") (= "=") (call_expression "FUN_0002bed0()" (identifier "FUN_0002bed0") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        piVar8[10] = 0;\n      }" ({ "{") (expression_statement "piVar8[10] = 0;" (assignment_expression "piVar8[10] = 0" (subscript_expression "piVar8[10]" (identifier "piVar8") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" (else "else") (compound_statement "{\n        iVar7 = *(int *)(param_1 + 0x6a8);\n        if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }\n        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));\n      }" ({ "{") (expression_statement "iVar7 = *(int *)(param_1 + 0x6a8);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x6a8)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x6a8)" (* "*") (cast_expression "(int *)(param_1 + 0x6a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6a8)" (( "(") (binary_expression "param_1 + 0x6a8" (identifier "param_1") (+ "+") (number_literal "0x6a8")) () ")"))))) (; ";")) (if_statement "if (iVar7 == 0) {\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));\n          *(int *)(param_1 + 0x6a8) = iVar7;\n        }" ({ "{") (expression_statement "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));" (assignment_expression "iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" (identifier "iVar7") (= "=") (call_expression "FUN_00062e90(*(undefined4 *)(param_1 + 0x248))" (identifier "FUN_00062e90") (argument_list "(*(undefined4 *)(param_1 + 0x248))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x6a8) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6a8) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6a8)" (* "*") (cast_expression "(int *)(param_1 + 0x6a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6a8)" (( "(") (binary_expression "param_1 + 0x6a8" (identifier "param_1") (+ "+") (number_literal "0x6a8")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (} "}"))) (expression_statement "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));" (assignment_expression "piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4))" (subscript_expression "piVar8[10]" (identifier "piVar8") ([ "[") (number_literal "10") (] "]")) (= "=") (call_expression "(uint)(0 < *(int *)(iVar7 + 4))" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(0 < *(int *)(iVar7 + 4))" (( "(") (binary_expression "0 < *(int *)(iVar7 + 4)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar7 + 4)" (* "*") (cast_expression "(int *)(iVar7 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))))) () ")")))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" (else "else") (compound_statement "{\n      if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }\n      piVar8[3] = 0;\n    }" ({ "{") (if_statement "if (piVar8[1] != 5) {\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" (if "if") (parenthesized_expression "(piVar8[1] != 5)" (( "(") (binary_expression "piVar8[1] != 5" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n        pcVar16 = "Strange packet received during authentication: type %d";\n        goto LAB_0002dba9;\n      }" ({ "{") (expression_statement "pcVar16 = "Strange packet received during authentication: type %d";" (assignment_expression "pcVar16 = "Strange packet received during authentication: type %d"" (identifier "pcVar16") (= "=") (string_literal ""Strange packet received during authentication: type %d"" (" """) (string_content "Strange packet received during authentication: type %d") (" """))) (; ";")) (goto_statement "goto LAB_0002dba9;" (goto "goto") (statement_identifier "LAB_0002dba9") (; ";")) (} "}"))) (expression_statement "piVar8[3] = 0;" (assignment_expression "piVar8[3] = 0" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (piVar8[5] != 0) {\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" (if "if") (parenthesized_expression "(piVar8[5] != 0)" (( "(") (binary_expression "piVar8[5] != 0" (subscript_expression "piVar8[5]" (identifier "piVar8") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }\n      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }\n    }" ({ "{") (if_statement "if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" (if "if") (parenthesized_expression "((piVar8[9] == 0) && (piVar8[0x21] != 0))" (( "(") (binary_expression "(piVar8[9] == 0) && (piVar8[0x21] != 0)" (parenthesized_expression "(piVar8[9] == 0)" (( "(") (binary_expression "piVar8[9] == 0" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar8[0x21] != 0)" (( "(") (binary_expression "piVar8[0x21] != 0" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        iVar5 = piVar8[0x1d];\n        piVar8[0x25] = iVar6;\n        iVar7 = iVar5 + 4;\n        piVar8[0x22] = iVar7;\n        piVar8[0x1d] = iVar7 + iVar6;\n        uVar12 = *(uint *)(iVar5 + 4);\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x26] = iVar7;\n        piVar8[0x23] = piVar8[0x22] + 4;\n        uVar12 = *(uint *)piVar8[0x1d];\n        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);\n        piVar8[0x27] = iVar7;\n        piVar8[0x24] = piVar8[0x1d] + 4;\n        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        piVar8[1] = 3;\n        goto LAB_0002e2e0;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);" (call_expression "FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20])" (identifier "FUN_00026c00") (argument_list "(param_1,"Trying Pageant key #%d",piVar8[0x20])" (( "(") (identifier "param_1") (, ",") (string_literal ""Trying Pageant key #%d"" (" """) (string_content "Trying Pageant key #%d") (" """)) (, ",") (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) () ")"))) (; ";")) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)piVar8[0x1d]" (* "*") (cast_expression "(uint *)piVar8[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]"))))) (; ";")) (expression_statement "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "iVar6") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "iVar5 = piVar8[0x1d];" (assignment_expression "iVar5 = piVar8[0x1d]" (identifier "iVar5") (= "=") (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]"))) (; ";")) (expression_statement "piVar8[0x25] = iVar6;" (assignment_expression "piVar8[0x25] = iVar6" (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) (= "=") (identifier "iVar6")) (; ";")) (expression_statement "iVar7 = iVar5 + 4;" (assignment_expression "iVar7 = iVar5 + 4" (identifier "iVar7") (= "=") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar8[0x22] = iVar7;" (assignment_expression "piVar8[0x22] = iVar7" (subscript_expression "piVar8[0x22]" (identifier "piVar8") ([ "[") (number_literal "0x22") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar8[0x1d] = iVar7 + iVar6;" (assignment_expression "piVar8[0x1d] = iVar7 + iVar6" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "iVar7 + iVar6" (identifier "iVar7") (+ "+") (identifier "iVar6"))) (; ";")) (expression_statement "uVar12 = *(uint *)(iVar5 + 4);" (assignment_expression "uVar12 = *(uint *)(iVar5 + 4)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(iVar5 + 4)" (* "*") (cast_expression "(uint *)(iVar5 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "iVar7") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "piVar8[0x26] = iVar7;" (assignment_expression "piVar8[0x26] = iVar7" (subscript_expression "piVar8[0x26]" (identifier "piVar8") ([ "[") (number_literal "0x26") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar8[0x23] = piVar8[0x22] + 4;" (assignment_expression "piVar8[0x23] = piVar8[0x22] + 4" (subscript_expression "piVar8[0x23]" (identifier "piVar8") ([ "[") (number_literal "0x23") (] "]")) (= "=") (binary_expression "piVar8[0x22] + 4" (subscript_expression "piVar8[0x22]" (identifier "piVar8") ([ "[") (number_literal "0x22") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "uVar12 = *(uint *)piVar8[0x1d];" (assignment_expression "uVar12 = *(uint *)piVar8[0x1d]" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)piVar8[0x1d]" (* "*") (cast_expression "(uint *)piVar8[0x1d]" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]"))))) (; ";")) (expression_statement "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18);" (assignment_expression "iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "iVar7") (= "=") (call_expression "FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (identifier "FUN_0001c400") (argument_list "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                             uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) (; ";")) (expression_statement "piVar8[0x27] = iVar7;" (assignment_expression "piVar8[0x27] = iVar7" (subscript_expression "piVar8[0x27]" (identifier "piVar8") ([ "[") (number_literal "0x27") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar8[0x24] = piVar8[0x1d] + 4;" (assignment_expression "piVar8[0x24] = piVar8[0x1d] + 4" (subscript_expression "piVar8[0x24]" (identifier "piVar8") ([ "[") (number_literal "0x24") (] "]")) (= "=") (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (+ "+") (number_literal "4"))) (; ";")) (expression_statement "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;" (assignment_expression "piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "piVar8[0x1d] + 4 + iVar7" (binary_expression "piVar8[0x1d] + 4" (subscript_expression "piVar8[0x1d]" (identifier "piVar8") ([ "[") (number_literal "0x1d") (] "]")) (+ "+") (number_literal "4")) (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8[1] = 3;" (assignment_expression "piVar8[1] = 3" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "3")) (; ";")) (goto_statement "goto LAB_0002e2e0;" (goto "goto") (statement_identifier "LAB_0002e2e0") (; ";")) (} "}"))) (if_statement "if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0))" (( "(") (binary_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)" (parenthesized_expression "((piVar8[0x14] != 0) && (piVar8[0x16] != 0))" (( "(") (binary_expression "(piVar8[0x14] != 0) && (piVar8[0x16] != 0)" (parenthesized_expression "(piVar8[0x14] != 0)" (( "(") (binary_expression "piVar8[0x14] != 0" (subscript_expression "piVar8[0x14]" (identifier "piVar8") ([ "[") (number_literal "0x14") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar8[0x16] != 0)" (( "(") (binary_expression "piVar8[0x16] != 0" (subscript_expression "piVar8[0x16]" (identifier "piVar8") ([ "[") (number_literal "0x16") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(piVar8[8] == 0)" (( "(") (binary_expression "piVar8[8] == 0" (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        *(undefined4 *)(param_1 + 0x188) = 1;\n        piVar8[8] = 1;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        FUN_00033b40();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");\nLAB_0002f4f1:\n        *piVar8 = 0x26df;\n        goto LAB_0002d320;\n      }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x188) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offered public key")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Offered public key"" (" """) (string_content "Offered public key") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_0002f4f1:\n        *piVar8 = 0x26df;" (statement_identifier "LAB_0002f4f1") (: ":") (expression_statement "*piVar8 = 0x26df;" (assignment_expression "*piVar8 = 0x26df" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x26df")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (} "}"))) (if_statement "if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" (if "if") (parenthesized_expression "((piVar8[10] != 0) && (piVar8[0xb] == 0))" (( "(") (binary_expression "(piVar8[10] != 0) && (piVar8[0xb] == 0)" (parenthesized_expression "(piVar8[10] != 0)" (( "(") (binary_expression "piVar8[10] != 0" (subscript_expression "piVar8[10]" (identifier "piVar8") ([ "[") (number_literal "10") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar8[0xb] == 0)" (( "(") (binary_expression "piVar8[0xb] == 0" (subscript_expression "piVar8[0xb]" (identifier "piVar8") ([ "[") (number_literal "0xb") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      piVar8[1] = 5;\n      piVar8[0xb] = 1;\n      iVar7 = DAT_0007d228;\n      piVar8[3] = 1;\n      local_64 = (int *)0x0;\n      *(undefined4 *)(param_1 + 0x188) = 3;\n      piVar8[0x30] = 0;\n      if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }\n      do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);\n      piVar9 = (int *)piVar8[0x30];\nLAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;\n      if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");\n      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);\n      local_24 = 0x1000000;\n      FUN_00029c40();\n      FUN_00029e10();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00029c40();\n      FUN_00033b40();\n      goto LAB_0002d664;\n    }" ({ "{") (expression_statement "piVar8[1] = 5;" (assignment_expression "piVar8[1] = 5" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "5")) (; ";")) (expression_statement "piVar8[0xb] = 1;" (assignment_expression "piVar8[0xb] = 1" (subscript_expression "piVar8[0xb]" (identifier "piVar8") ([ "[") (number_literal "0xb") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = DAT_0007d228;" (assignment_expression "iVar7 = DAT_0007d228" (identifier "iVar7") (= "=") (identifier "DAT_0007d228")) (; ";")) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_64 = (int *)0x0;" (assignment_expression "local_64 = (int *)0x0" (identifier "local_64") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 3;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 3" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "3")) (; ";")) (expression_statement "piVar8[0x30] = 0;" (assignment_expression "piVar8[0x30] = 0" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar7 < 1) {\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" (if "if") (parenthesized_expression "(iVar7 < 1)" (( "(") (binary_expression "iVar7 < 1" (identifier "iVar7") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");\n      }" ({ "{") (labeled_statement "LAB_000301fa:\n                    \n        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" (statement_identifier "LAB_000301fa") (: ":") (expression_statement "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");" (call_expression "__assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" (identifier "__assert_fail") (argument_list "("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn")" (( "(") (string_literal ""s->gsslib"" (" """) (string_content "s->gsslib") (" """)) (, ",") (string_literal ""ssh.c"" (" """) (string_content "ssh.c") (" """)) (, ",") (number_literal "0x2799") (, ",") (string_literal ""do_ssh2_authconn"" (" """) (string_content "do_ssh2_authconn") (" """)) () ")"))) (; ";"))) (} "}"))) (do_statement "do {\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      } while ((int *)iVar7 != local_64);" (do "do") (compound_statement "{\n        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);\n        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];\n        if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }\n        local_64 = (int *)((int)local_64 + 1);\n      }" ({ "{") (expression_statement "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);" (assignment_expression "iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" (identifier "iVar6") (= "=") (call_expression "FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" (identifier "FUN_00018a70") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x29,local_64)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x29") (, ",") (identifier "local_64") () ")")))) (; ";")) (expression_statement "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];" (assignment_expression "iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1]" (identifier "iVar5") (= "=") (subscript_expression "(*(undefined4 **)(param_1 + 0x6a8))[1]" (parenthesized_expression "(*(undefined4 **)(param_1 + 0x6a8))" (( "(") (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x6a8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x6a8)" (( "(") (binary_expression "param_1 + 0x6a8" (identifier "param_1") (+ "+") (number_literal "0x6a8")) () ")")))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (0 < iVar5) {\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" (if "if") (parenthesized_expression "(0 < iVar5)" (( "(") (binary_expression "0 < iVar5" (number_literal "0") (< "<") (identifier "iVar5")) () ")")) (compound_statement "{\n          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);\n          if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }\n          iVar18 = 0;\n          while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }\n        }" ({ "{") (expression_statement "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);" (assignment_expression "piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8)" (identifier "piVar9") (= "=") (cast_expression "(int *)**(undefined4 **)(param_1 + 0x6a8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(param_1 + 0x6a8)" (* "*") (pointer_expression "*(undefined4 **)(param_1 + 0x6a8)" (* "*") (cast_expression "(undefined4 **)(param_1 + 0x6a8)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x6a8)" (( "(") (binary_expression "param_1 + 0x6a8" (identifier "param_1") (+ "+") (number_literal "0x6a8")) () ")"))))))) (; ";")) (if_statement "if (iVar6 == *piVar9) {\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" (if "if") (parenthesized_expression "(iVar6 == *piVar9)" (( "(") (binary_expression "iVar6 == *piVar9" (identifier "iVar6") (== "==") (pointer_expression "*piVar9" (* "*") (identifier "piVar9"))) () ")")) (compound_statement "{\nLAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;\n            goto LAB_0002d550;\n          }" ({ "{") (labeled_statement "LAB_0002ebb0:\n            piVar8[0x30] = (int)piVar9;" (statement_identifier "LAB_0002ebb0") (: ":") (expression_statement "piVar8[0x30] = (int)piVar9;" (assignment_expression "piVar8[0x30] = (int)piVar9" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (= "=") (cast_expression "(int)piVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar9"))) (; ";"))) (goto_statement "goto LAB_0002d550;" (goto "goto") (statement_identifier "LAB_0002d550") (; ";")) (} "}"))) (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" (identifier "iVar18") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n            piVar9 = piVar9 + 0x15;\n            iVar18 = iVar18 + 1;\n            if (iVar18 == iVar5) break;\n            if (*piVar9 == iVar6) goto LAB_0002ebb0;\n          }" ({ "{") (expression_statement "piVar9 = piVar9 + 0x15;" (assignment_expression "piVar9 = piVar9 + 0x15" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 0x15" (identifier "piVar9") (+ "+") (number_literal "0x15"))) (; ";")) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" (identifier "iVar18") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar18 == iVar5) break;" (if "if") (parenthesized_expression "(iVar18 == iVar5)" (( "(") (binary_expression "iVar18 == iVar5" (identifier "iVar18") (== "==") (identifier "iVar5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*piVar9 == iVar6) goto LAB_0002ebb0;" (if "if") (parenthesized_expression "(*piVar9 == iVar6)" (( "(") (binary_expression "*piVar9 == iVar6" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (== "==") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_0002ebb0;" (goto "goto") (statement_identifier "LAB_0002ebb0") (; ";"))) (} "}"))) (} "}"))) (expression_statement "local_64 = (int *)((int)local_64 + 1);" (assignment_expression "local_64 = (int *)((int)local_64 + 1)" (identifier "local_64") (= "=") (cast_expression "(int *)((int)local_64 + 1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_64 + 1)" (( "(") (binary_expression "(int)local_64 + 1" (cast_expression "(int)local_64" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_64")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((int *)iVar7 != local_64)" (( "(") (binary_expression "(int *)iVar7 != local_64" (cast_expression "(int *)iVar7" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "iVar7")) (!= "!=") (identifier "local_64")) () ")")) (; ";")) (expression_statement "piVar9 = (int *)piVar8[0x30];" (assignment_expression "piVar9 = (int *)piVar8[0x30]" (identifier "piVar9") (= "=") (cast_expression "(int *)piVar8[0x30]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")))) (; ";")) (labeled_statement "LAB_0002d550:\n      if (piVar9 == (int *)0x0) goto LAB_000301fa;" (statement_identifier "LAB_0002d550") (: ":") (if_statement "if (piVar9 == (int *)0x0) goto LAB_000301fa;" (if "if") (parenthesized_expression "(piVar9 == (int *)0x0)" (( "(") (binary_expression "piVar9 == (int *)0x0" (identifier "piVar9") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000301fa;" (goto "goto") (statement_identifier "LAB_000301fa") (; ";")))) (if_statement "if (piVar9[1] != 0) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" (if "if") (parenthesized_expression "(piVar9[1] != 0)" (( "(") (binary_expression "piVar9[1] != 0" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);\n      }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1])" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),piVar9[1])" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Attempting GSSAPI authentication"" (" """) (string_content "Attempting GSSAPI authentication") (" """)) () ")"))) (; ";")) (expression_statement "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);" (call_expression "(**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32)" (parenthesized_expression "(**(code **)(piVar8[0x30] + 8))" (( "(") (pointer_expression "**(code **)(piVar8[0x30] + 8)" (* "*") (pointer_expression "*(code **)(piVar8[0x30] + 8)" (* "*") (cast_expression "(code **)(piVar8[0x30] + 8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0x30] + 8)" (( "(") (binary_expression "piVar8[0x30] + 8" (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (+ "+") (number_literal "8")) () ")"))))) () ")")) (argument_list "(piVar8[0x30],piVar8 + 0x32)" (( "(") (subscript_expression "piVar8[0x30]" (identifier "piVar8") ([ "[") (number_literal "0x30") (] "]")) (, ",") (binary_expression "piVar8 + 0x32" (identifier "piVar8") (+ "+") (number_literal "0x32")) () ")"))) (; ";")) (expression_statement "local_24 = 0x1000000;" (assignment_expression "local_24 = 0x1000000" (identifier "local_24") (= "=") (number_literal "0x1000000")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" (identifier "FUN_00029e10") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto LAB_0002d664;" (goto "goto") (statement_identifier "LAB_0002d664") (; ";")) (} "}"))) (if_statement "if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "((piVar8[7] != 0) && (piVar8[0xc] == 0))" (( "(") (binary_expression "(piVar8[7] != 0) && (piVar8[0xc] == 0)" (parenthesized_expression "(piVar8[7] != 0)" (( "(") (binary_expression "piVar8[7] != 0" (subscript_expression "piVar8[7]" (identifier "piVar8") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(piVar8[0xc] == 0)" (( "(") (binary_expression "piVar8[0xc] == 0" (subscript_expression "piVar8[0xc]" (identifier "piVar8") ([ "[") (number_literal "0xc") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      piVar8[1] = 6;\n      *(undefined4 *)(param_1 + 0x188) = 4;\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00033b40();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );\nLAB_0002e166:\n      *piVar8 = 0x284b;\n      goto LAB_0002d320;\n    }" ({ "{") (expression_statement "piVar8[1] = 6;" (assignment_expression "piVar8[1] = 6" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "6")) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 4;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 4" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "4")) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  );" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"\n                  )" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Attempting keyboard-interactive authentication"" (" """) (string_content "Attempting keyboard-interactive authentication") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_0002e166:\n      *piVar8 = 0x284b;" (statement_identifier "LAB_0002e166") (: ":") (expression_statement "*piVar8 = 0x284b;" (assignment_expression "*piVar8 = 0x284b" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x284b")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (piVar8[6] == 0) {\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "(piVar8[6] == 0)" (( "(") (binary_expression "piVar8[6] == 0" (subscript_expression "piVar8[6]" (identifier "piVar8") ([ "[") (number_literal "6") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);\n      FUN_00034b00(0xe,0);\n      FUN_0001d220(uVar11);\n      *piVar8 = 0;\n      goto LAB_0002d320;\n    }" ({ "{") (expression_statement "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" (identifier "FUN_0001d000") (argument_list "("No supported authentication methods available (server sent: %.*s)",\n                            local_2c[0],local_30)" (( "(") (string_literal ""No supported authentication methods available (server sent: %.*s)"" (" """) (string_content "No supported authentication methods available (server sent: %.*s)") (" """)) (, ",") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_30") () ")")))) (; ";")) (expression_statement "FUN_00034b00(0xe,0);" (call_expression "FUN_00034b00(0xe,0)" (identifier "FUN_00034b00") (argument_list "(0xe,0)" (( "(") (number_literal "0xe") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" (identifier "FUN_0001d220") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_1 + 0x188) = 2;" (assignment_expression "*(undefined4 *)(param_1 + 0x188) = 2" (pointer_expression "*(undefined4 *)(param_1 + 0x188)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x188)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x188)" (( "(") (binary_expression "param_1 + 0x188" (identifier "param_1") (+ "+") (number_literal "0x188")) () ")")))) (= "=") (number_literal "2")) (; ";")) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_0001ca50") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("SSH password")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("SSH password")" (identifier "FUN_0001caa0") (argument_list "("SSH password")" (( "(") (string_literal ""SSH password"" (" """) (string_content "SSH password") (" """)) () ")")))) (; ";")) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8));" (assignment_expression "uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" (identifier "FUN_0001d000") (argument_list "("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),\n                          *(undefined4 *)(param_1 + 0xf8))" (( "(") (string_literal ""%s@%s\'s password: "" (" """) (string_content "%s@%s") (escape_sequence "\'") (string_content "s password: ") (" """)) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0x250)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x250)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x250)" (( "(") (binary_expression "param_1 + 0x250" (identifier "param_1") (+ "+") (number_literal "0x250")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(param_1 + 0xf8)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xf8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],0,0)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],0,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_0002dc60:\n    if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" (statement_identifier "LAB_0002dc60") (: ":") (if_statement "if (iVar7 < 0) {\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      *(undefined4 *)(param_1 + 0x100) = 1;\nLAB_0002d68e:\n      *piVar8 = 0x28e8;\n      goto LAB_0002d320;\n    }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (labeled_statement "LAB_0002d68e:\n      *piVar8 = 0x28e8;" (statement_identifier "LAB_0002d68e") (: ":") (expression_statement "*piVar8 = 0x28e8;" (assignment_expression "*piVar8 = 0x28e8" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x28e8")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}")))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" (identifier "iVar5") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (iVar7 != 0) {\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n      piVar8[0x12] = iVar7;\n      FUN_0001c2f0(piVar8[0xf]);\n      iVar7 = FUN_00029d20();\n      piVar8[0x2e] = iVar7;\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029e50();\n      FUN_00029c40();\n      FUN_00029e50();\n      FUN_00038450();\n      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");\n      piVar8[1] = 4;\n      goto LAB_0002dd1c;\n    }" ({ "{") (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (identifier "iVar7") (= "=") (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (identifier "FUN_0001caa0") (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (( "(") (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" (* "*") (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" (( "(") (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" (* "*") (pointer_expression "*(int **)(iVar5 + 0x18)" (* "*") (cast_expression "(int **)(iVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" (identifier "FUN_00038450") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent password")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Sent password"" (" """) (string_content "Sent password") (" """)) () ")"))) (; ";")) (expression_statement "piVar8[1] = 4;" (assignment_expression "piVar8[1] = 4" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0002dd1c;" (goto "goto") (statement_identifier "LAB_0002dd1c") (; ";")) (} "}"))) (labeled_statement "LAB_0002ea6c:\n    FUN_0001c2f0(iVar5);" (statement_identifier "LAB_0002ea6c") (: ":") (expression_statement "FUN_0001c2f0(iVar5);" (call_expression "FUN_0001c2f0(iVar5)" (identifier "FUN_0001c2f0") (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";"))) (labeled_statement "LAB_0002ea71:\n    FUN_00034b00(0xd,1);" (statement_identifier "LAB_0002ea71") (: ":") (expression_statement "FUN_00034b00(0xd,1);" (call_expression "FUN_00034b00(0xd,1)" (identifier "FUN_00034b00") (argument_list "(0xd,1)" (( "(") (number_literal "0xd") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 < 0x27b7) {\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" (if "if") (parenthesized_expression "(iVar7 < 0x27b7)" (( "(") (binary_expression "iVar7 < 0x27b7" (identifier "iVar7") (< "<") (number_literal "0x27b7")) () ")")) (compound_statement "{\n    if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }\n    if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }\n    if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }\n    if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }\n    if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }\n    if (iVar7 != 0x2650) goto LAB_0002d8a4;\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }\nLAB_0002e2e0:\n    *piVar8 = 0x2650;\n    goto LAB_0002d320;\n  }" ({ "{") (if_statement "if (iVar7 == 0x2561) {\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x2561)" (( "(") (binary_expression "iVar7 == 0x2561" (identifier "iVar7") (== "==") (number_literal "0x2561")) () ")")) (compound_statement "{\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }\nLAB_0002e8c8:\n      *piVar8 = 0x2561;\n      goto LAB_0002d320;\n    }" ({ "{") (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002f3ea;\n      }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],param_2,param_3)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002f3ea;" (goto "goto") (statement_identifier "LAB_0002f3ea") (; ";")) (} "}"))) (labeled_statement "LAB_0002e8c8:\n      *piVar8 = 0x2561;" (statement_identifier "LAB_0002e8c8") (: ":") (expression_statement "*piVar8 = 0x2561;" (assignment_expression "*piVar8 = 0x2561" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2561")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 < 0x2562) {\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" (if "if") (parenthesized_expression "(iVar7 < 0x2562)" (( "(") (binary_expression "iVar7 < 0x2562" (identifier "iVar7") (< "<") (number_literal "0x2562")) () ")")) (compound_statement "{\n      if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }\n      if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }\n      if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }\n      if (iVar7 != 0x24d9) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) goto LAB_0002dba0;\n      if (0 < param_3) goto LAB_0002eb58;\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x1e] = *(int *)(param_1 + 600);\n      goto LAB_0002d78a;\n    }" ({ "{") (if_statement "if (iVar7 == 0x246f) {\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0x246f)" (( "(") (binary_expression "iVar7 == 0x246f" (identifier "iVar7") (== "==") (number_literal "0x246f")) () ")")) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fadd;\n        if (param_4[2] != 6) goto LAB_0002dbfb;\n        piVar8[2] = 1;\n        goto LAB_0002d97a;\n      }" ({ "{") (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fadd;" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002fadd;" (goto "goto") (statement_identifier "LAB_0002fadd") (; ";"))) (if_statement "if (param_4[2] != 6) goto LAB_0002dbfb;" (if "if") (parenthesized_expression "(param_4[2] != 6)" (( "(") (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "6")) () ")")) (goto_statement "goto LAB_0002dbfb;" (goto "goto") (statement_identifier "LAB_0002dbfb") (; ";"))) (expression_statement "piVar8[2] = 1;" (assignment_expression "piVar8[2] = 1" (subscript_expression "piVar8[2]" (identifier "piVar8") ([ "[") (number_literal "2") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002d97a;" (goto "goto") (statement_identifier "LAB_0002d97a") (; ";")) (} "}"))) (if_statement "if (iVar7 < 0x2470) {\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" (if "if") (parenthesized_expression "(iVar7 < 0x2470)" (( "(") (binary_expression "iVar7 < 0x2470" (identifier "iVar7") (< "<") (number_literal "0x2470")) () ")")) (compound_statement "{\n        if (iVar7 == 0) goto LAB_0002d8d0;\n        goto LAB_0002d8a4;\n      }" ({ "{") (if_statement "if (iVar7 == 0) goto LAB_0002d8d0;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002d8d0;" (goto "goto") (statement_identifier "LAB_0002d8d0") (; ";"))) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x247a) {\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0x247a)" (( "(") (binary_expression "iVar7 == 0x247a" (identifier "iVar7") (== "==") (number_literal "0x247a")) () ")")) (compound_statement "{\n        if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }\n        goto LAB_0002dc2e;\n      }" ({ "{") (if_statement "if (param_4 != (int *)0x0) {\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }\n          goto LAB_0002d973;\n        }" ({ "{") (if_statement "if (param_4[2] != 6) {\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" (if "if") (parenthesized_expression "(param_4[2] != 6)" (( "(") (binary_expression "param_4[2] != 6" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n            pcVar16 = "Server refused service request";\n            goto LAB_0002dba9;\n          }" ({ "{") (expression_statement "pcVar16 = "Server refused service request";" (assignment_expression "pcVar16 = "Server refused service request"" (identifier "pcVar16") (= "=") (string_literal ""Server refused service request"" (" """) (string_content "Server refused service request") (" """))) (; ";")) (goto_statement "goto LAB_0002dba9;" (goto "goto") (statement_identifier "LAB_0002dba9") (; ";")) (} "}"))) (goto_statement "goto LAB_0002d973;" (goto "goto") (statement_identifier "LAB_0002d973") (; ";")) (} "}"))) (goto_statement "goto LAB_0002dc2e;" (goto "goto") (statement_identifier "LAB_0002dc2e") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0x24d9) goto LAB_0002d8a4;" (if "if") (parenthesized_expression "(iVar7 != 0x24d9)" (( "(") (binary_expression "iVar7 != 0x24d9" (identifier "iVar7") (!= "!=") (number_literal "0x24d9")) () ")")) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";"))) (if_statement "if (param_4 != (int *)0x0) goto LAB_0002dba0;" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002dba0;" (goto "goto") (statement_identifier "LAB_0002dba0") (; ";"))) (if_statement "if (0 < param_3) goto LAB_0002eb58;" (if "if") (parenthesized_expression "(0 < param_3)" (( "(") (binary_expression "0 < param_3" (number_literal "0") (< "<") (identifier "param_3")) () ")")) (goto_statement "goto LAB_0002eb58;" (goto "goto") (statement_identifier "LAB_0002eb58") (; ";"))) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)(param_1 + 0x254)" (* "*") (cast_expression "(char **)(param_1 + 0x254)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x254)" (( "(") (binary_expression "param_1 + 0x254" (identifier "param_1") (+ "+") (number_literal "0x254")) () ")"))))) (; ";")) (expression_statement "piVar8[0x1e] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x1e] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x1e]" (identifier "piVar8") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (pointer_expression "*(int *)(param_1 + 600)" (* "*") (cast_expression "(int *)(param_1 + 600)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 600)" (( "(") (binary_expression "param_1 + 600" (identifier "param_1") (+ "+") (number_literal "600")) () ")"))))) (; ";")) (goto_statement "goto LAB_0002d78a;" (goto "goto") (statement_identifier "LAB_0002d78a") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x2696) {\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x2696)" (( "(") (binary_expression "iVar7 == 0x2696" (identifier "iVar7") (== "==") (number_literal "0x2696")) () ")")) (compound_statement "{\n      if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }\n      if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }\n      local_2c[0] = *(char **)(param_1 + 0x254);\n      piVar8[0x29] = *(int *)(param_1 + 600);\nLAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];\n      FUN_0001d220(piVar8[0x2c]);\n      iVar7 = piVar8[0x2d];\n      if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }\nLAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }\n      goto LAB_0002d2f8;\n    }" ({ "{") (if_statement "if (param_4 != (int *)0x0) {\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";\n        goto LAB_0002dba9;\n      }" ({ "{") (labeled_statement "LAB_0002dba0:\n        pcVar16 = "Unexpected data from server while waiting for agent response";" (statement_identifier "LAB_0002dba0") (: ":") (expression_statement "pcVar16 = "Unexpected data from server while waiting for agent response";" (assignment_expression "pcVar16 = "Unexpected data from server while waiting for agent response"" (identifier "pcVar16") (= "=") (string_literal ""Unexpected data from server while waiting for agent response"" (" """) (string_content "Unexpected data from server while waiting for agent response") (" """))) (; ";"))) (goto_statement "goto LAB_0002dba9;" (goto "goto") (statement_identifier "LAB_0002dba9") (; ";")) (} "}"))) (if_statement "if (0 < param_3) {\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(0 < param_3)" (( "(") (binary_expression "0 < param_3" (number_literal "0") (< "<") (identifier "param_3")) () ")")) (compound_statement "{\nLAB_0002f388:\n        *piVar8 = 0x2696;\n        goto LAB_0002d320;\n      }" ({ "{") (labeled_statement "LAB_0002f388:\n        *piVar8 = 0x2696;" (statement_identifier "LAB_0002f388") (: ":") (expression_statement "*piVar8 = 0x2696;" (assignment_expression "*piVar8 = 0x2696" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2696")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "local_2c[0] = *(char **)(param_1 + 0x254);" (assignment_expression "local_2c[0] = *(char **)(param_1 + 0x254)" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)(param_1 + 0x254)" (* "*") (cast_expression "(char **)(param_1 + 0x254)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x254)" (( "(") (binary_expression "param_1 + 0x254" (identifier "param_1") (+ "+") (number_literal "0x254")) () ")"))))) (; ";")) (expression_statement "piVar8[0x29] = *(int *)(param_1 + 600);" (assignment_expression "piVar8[0x29] = *(int *)(param_1 + 600)" (subscript_expression "piVar8[0x29]" (identifier "piVar8") ([ "[") (number_literal "0x29") (] "]")) (= "=") (pointer_expression "*(int *)(param_1 + 600)" (* "*") (cast_expression "(int *)(param_1 + 600)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 600)" (( "(") (binary_expression "param_1 + 600" (identifier "param_1") (+ "+") (number_literal "600")) () ")"))))) (; ";")) (labeled_statement "LAB_0002e806:\n      piVar8[0x2d] = (int)local_2c[0];" (statement_identifier "LAB_0002e806") (: ":") (expression_statement "piVar8[0x2d] = (int)local_2c[0];" (assignment_expression "piVar8[0x2d] = (int)local_2c[0]" (subscript_expression "piVar8[0x2d]" (identifier "piVar8") ([ "[") (number_literal "0x2d") (] "]")) (= "=") (cast_expression "(int)local_2c[0]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")))) (; ";"))) (expression_statement "FUN_0001d220(piVar8[0x2c]);" (call_expression "FUN_0001d220(piVar8[0x2c])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x2c])" (( "(") (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[0x2d];" (assignment_expression "iVar7 = piVar8[0x2d]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x2d]" (identifier "piVar8") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (if_statement "if (iVar7 != 0) {\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");\n        uVar12 = *(uint *)(piVar8[0x2d] + 5);\n        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);\n        FUN_00033b40();\n        piVar8[1] = 1;\n      }" ({ "{") (if_statement "if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" (if "if") (parenthesized_expression "(((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)))" (( "(") (binary_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||\n           (uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" (parenthesized_expression "((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e'))" (( "(") (binary_expression "(piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')" (parenthesized_expression "(piVar8[0x29] < 9)" (( "(") (binary_expression "piVar8[0x29] < 9" (subscript_expression "piVar8[0x29]" (identifier "piVar8") ([ "[") (number_literal "0x29") (] "]")) (< "<") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(iVar7 + 4) != '\x0e')" (( "(") (binary_expression "*(char *)(iVar7 + 4) != '\x0e'" (pointer_expression "*(char *)(iVar7 + 4)" (* "*") (cast_expression "(char *)(iVar7 + 4)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (!= "!=") (char_literal "'\x0e'" (' "'") (escape_sequence "\x0e") (' "'"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))" (( "(") (comma_expression "uVar12 = *(uint *)(iVar7 + 5),\n           piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (assignment_expression "uVar12 = *(uint *)(iVar7 + 5)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(iVar7 + 5)" (* "*") (cast_expression "(uint *)(iVar7 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 5)" (( "(") (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) () ")"))))) (, ",") (binary_expression "piVar8[0x29] - 9U <\n           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (binary_expression "piVar8[0x29] - 9U" (subscript_expression "piVar8[0x29]" (identifier "piVar8") ([ "[") (number_literal "0x29") (] "]")) (- "-") (number_literal "9U")) (< "<") (parenthesized_expression "(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18)" (( "(") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")")))) () ")"))) () ")")) (compound_statement "{\n          pcVar16 = "Pageant failed to answer challenge";\n          goto LAB_0002dba9;\n        }" ({ "{") (expression_statement "pcVar16 = "Pageant failed to answer challenge";" (assignment_expression "pcVar16 = "Pageant failed to answer challenge"" (identifier "pcVar16") (= "=") (string_literal ""Pageant failed to answer challenge"" (" """) (string_content "Pageant failed to answer challenge") (" """))) (; ";")) (goto_statement "goto LAB_0002dba9;" (goto "goto") (statement_identifier "LAB_0002dba9") (; ";")) (} "}"))) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Sending Pageant\'s response"" (" """) (string_content "Sending Pageant") (escape_sequence "\'") (string_content "s response") (" """)) () ")"))) (; ";")) (expression_statement "uVar12 = *(uint *)(piVar8[0x2d] + 5);" (assignment_expression "uVar12 = *(uint *)(piVar8[0x2d] + 5)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(piVar8[0x2d] + 5)" (* "*") (cast_expression "(uint *)(piVar8[0x2d] + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2d] + 5)" (( "(") (binary_expression "piVar8[0x2d] + 5" (subscript_expression "piVar8[0x2d]" (identifier "piVar8") ([ "[") (number_literal "0x2d") (] "]")) (+ "+") (number_literal "5")) () ")"))))) (; ";")) (expression_statement "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18);" (call_expression "FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" (identifier "FUN_0002bf40") (argument_list "(piVar8[0x25],piVar8[0x2d] + 9,\n                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18)" (( "(") (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) (, ",") (binary_expression "piVar8[0x2d] + 9" (subscript_expression "piVar8[0x2d]" (identifier "piVar8") ([ "[") (number_literal "0x2d") (] "]")) (+ "+") (number_literal "9")) (, ",") (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |\n                     uVar12 << 0x18" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8" (binary_expression "uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8" (binary_expression "uVar12 >> 0x18" (identifier "uVar12") (>> ">>") (number_literal "0x18")) (| "|") (binary_expression "(uVar12 & 0xff0000) >> 8" (parenthesized_expression "(uVar12 & 0xff0000)" (( "(") (binary_expression "uVar12 & 0xff0000" (identifier "uVar12") (& "&") (number_literal "0xff0000")) () ")")) (>> ">>") (number_literal "8"))) (| "|") (binary_expression "(uVar12 & 0xff00) << 8" (parenthesized_expression "(uVar12 & 0xff00)" (( "(") (binary_expression "uVar12 & 0xff00" (identifier "uVar12") (& "&") (number_literal "0xff00")) () ")")) (<< "<<") (number_literal "8"))) (| "|") (binary_expression "uVar12 << 0x18" (identifier "uVar12") (<< "<<") (number_literal "0x18"))) () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (labeled_statement "LAB_0002d6ed:\n      if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" (statement_identifier "LAB_0002d6ed") (: ":") (if_statement "if (piVar8[0x1f] == 0) {\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }\n      else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" (if "if") (parenthesized_expression "(piVar8[0x1f] == 0)" (( "(") (binary_expression "piVar8[0x1f] == 0" (subscript_expression "piVar8[0x1f]" (identifier "piVar8") ([ "[") (number_literal "0x1f") (] "]")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = piVar8[0x20];\n        iVar7 = piVar8[3];\n        piVar8[0x20] = iVar5 + 1;\n        if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }\n      }" ({ "{") (expression_statement "iVar5 = piVar8[0x20];" (assignment_expression "iVar5 = piVar8[0x20]" (identifier "iVar5") (= "=") (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]"))) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar8[0x20] = iVar5 + 1;" (assignment_expression "piVar8[0x20] = iVar5 + 1" (subscript_expression "piVar8[0x20]" (identifier "piVar8") ([ "[") (number_literal "0x20") (] "]")) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (piVar8[0x21] <= iVar5 + 1) {\n          piVar8[9] = 1;\n        }" (if "if") (parenthesized_expression "(piVar8[0x21] <= iVar5 + 1)" (( "(") (binary_expression "piVar8[0x21] <= iVar5 + 1" (subscript_expression "piVar8[0x21]" (identifier "piVar8") ([ "[") (number_literal "0x21") (] "]")) (<= "<=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          piVar8[9] = 1;\n        }" ({ "{") (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" (else "else") (compound_statement "{\n        piVar8[9] = 1;\n        iVar7 = piVar8[3];\n        piVar8[8] = 1;\n      }" ({ "{") (expression_statement "piVar8[9] = 1;" (assignment_expression "piVar8[9] = 1" (subscript_expression "piVar8[9]" (identifier "piVar8") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar8[8] = 1;" (assignment_expression "piVar8[8] = 1" (subscript_expression "piVar8[8]" (identifier "piVar8") ([ "[") (number_literal "8") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))))) (goto_statement "goto LAB_0002d2f8;" (goto "goto") (statement_identifier "LAB_0002d2f8") (; ";")) (} "}"))) (if_statement "if (0x2696 < iVar7) {\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" (if "if") (parenthesized_expression "(0x2696 < iVar7)" (( "(") (binary_expression "0x2696 < iVar7" (number_literal "0x2696") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n      if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002f4f1;\n    }" ({ "{") (if_statement "if (iVar7 != 0x26df) {\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0x26df)" (( "(") (binary_expression "iVar7 != 0x26df" (identifier "iVar7") (!= "!=") (number_literal "0x26df")) () ")")) (compound_statement "{\n        if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }\n        goto LAB_0002d8a4;\n      }" ({ "{") (if_statement "if (iVar7 == 0x2703) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0x2703)" (( "(") (binary_expression "iVar7 == 0x2703" (identifier "iVar7") (== "==") (number_literal "0x2703")) () ")")) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }\nLAB_0002d72e:\n          *piVar8 = 0x2703;\n          goto LAB_0002d320;\n        }" ({ "{") (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002dd4a;\n          }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],param_2,param_3)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002dd4a;" (goto "goto") (statement_identifier "LAB_0002dd4a") (; ";")) (} "}"))) (labeled_statement "LAB_0002d72e:\n          *piVar8 = 0x2703;" (statement_identifier "LAB_0002d72e") (: ":") (expression_statement "*piVar8 = 0x2703;" (assignment_expression "*piVar8 = 0x2703" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2703")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";")) (} "}"))) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }\n        piVar8[3] = 1;\n        piVar8[1] = 2;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" ({ "{") (if_statement "if (param_4[2] == 0x3c) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" (if "if") (parenthesized_expression "(param_4[2] == 0x3c)" (( "(") (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");\n          if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }\n          while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }\n          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n          piVar8[0x2f] = iVar7;\n          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);\n          if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }\nLAB_0002f5cf:\n          FUN_00029500();\n          strlen(local_2c[0]);\n          FUN_00029500();\n          FUN_00029500();\n          iVar7 = piVar8[3];\n          goto LAB_0002d2f8;\n        }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Offer of public key accepted"" (" """) (string_content "Offer of public key accepted") (" """)) () ")"))) (; ";")) (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" (if "if") (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" (( "(") (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" (( "(") (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000a5b0c")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_00029500();\n            strlen((char *)piVar8[0x19]);\n            FUN_00029500();\n            FUN_00029500();\n          }" ({ "{") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "strlen((char *)piVar8[0x19]);" (call_expression "strlen((char *)piVar8[0x19])" (identifier "strlen") (argument_list "((char *)piVar8[0x19])" (( "(") (cast_expression "(char *)piVar8[0x19]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x19]" (identifier "piVar8") ([ "[") (number_literal "0x19") (] "]"))) () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (while_statement "while (piVar8[0x17] != 0) {\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" (while "while") (parenthesized_expression "(piVar8[0x17] != 0)" (( "(") (binary_expression "piVar8[0x17] != 0" (subscript_expression "piVar8[0x17]" (identifier "piVar8") ([ "[") (number_literal "0x17") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n            piVar8[0xf] = (int)puVar10;\n            *puVar10 = 0;\n            uVar11 = FUN_0001caa0("SSH key passphrase");\n            puVar10[1] = uVar11;\n            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);\n            FUN_0001ce70(piVar8[0xf],uVar11,0);\n            iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }\n            iVar5 = piVar8[0xf];\n            if (iVar7 == 0) goto LAB_0002ea6c;\n            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));\n            FUN_0001c2f0(piVar8[0xf]);\n            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);\n            piVar8[0x2f] = iVar7;\n            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);\n            if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(pcVar16);\n            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;\n            FUN_00029500();\n          }" ({ "{") (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_0001ca50") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 0;" (assignment_expression "*puVar10 = 0" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("SSH key passphrase");" (assignment_expression "uVar11 = FUN_0001caa0("SSH key passphrase")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("SSH key passphrase")" (identifier "FUN_0001caa0") (argument_list "("SSH key passphrase")" (( "(") (string_literal ""SSH key passphrase"" (" """) (string_content "SSH key passphrase") (" """)) () ")")))) (; ";")) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);" (assignment_expression "uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19])" (identifier "FUN_0001d000") (argument_list "("Passphrase for key \"%.100s\": ",piVar8[0x19])" (( "(") (string_literal ""Passphrase for key \"%.100s\": "" (" """) (string_content "Passphrase for key ") (escape_sequence "\"") (string_content "%.100s") (escape_sequence "\"") (string_content ": ") (" """)) (, ",") (subscript_expression "piVar8[0x19]" (identifier "piVar8") ([ "[") (number_literal "0x19") (] "]")) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],0,0)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],0,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_0002dd4a:\n            if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" (statement_identifier "LAB_0002dd4a") (: ":") (if_statement "if (iVar7 < 0) {\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n              *(undefined4 *)(param_1 + 0x100) = 1;\n              goto LAB_0002d72e;\n            }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002d72e;" (goto "goto") (statement_identifier "LAB_0002d72e") (; ";")) (} "}")))) (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" (identifier "iVar5") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_0002ea6c;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002ea6c;" (goto "goto") (statement_identifier "LAB_0002ea6c") (; ";"))) (expression_statement "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));" (assignment_expression "pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (identifier "FUN_0001caa0") (argument_list "(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8))" (( "(") (pointer_expression "*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" (* "*") (cast_expression "(undefined4 *)(**(int **)(iVar5 + 0x18) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(iVar5 + 0x18) + 8)" (( "(") (binary_expression "**(int **)(iVar5 + 0x18) + 8" (pointer_expression "**(int **)(iVar5 + 0x18)" (* "*") (pointer_expression "*(int **)(iVar5 + 0x18)" (* "*") (cast_expression "(int **)(iVar5 + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 0x18)" (( "(") (binary_expression "iVar5 + 0x18" (identifier "iVar5") (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "8")) () ")")))) () ")"))))) (; ";")) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "iVar7") (= "=") (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "FUN_00018f20") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c)" (identifier "local_64") (= "=") (cast_expression "(int *)FUN_000509f0(iVar7,pcVar16,local_2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000509f0(iVar7,pcVar16,local_2c)" (identifier "FUN_000509f0") (argument_list "(iVar7,pcVar16,local_2c)" (( "(") (identifier "iVar7") (, ",") (identifier "pcVar16") (, ",") (identifier "local_2c") () ")"))))) (; ";")) (if_statement "if (pcVar16 == (char *)0x0) {\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" (if "if") (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;\n              goto LAB_0002ddec;\n            }" ({ "{") (if_statement "if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;" (if "if") (parenthesized_expression "(local_64 == (int *)PTR_DAT_000a4fac)" (( "(") (binary_expression "local_64 == (int *)PTR_DAT_000a4fac" (identifier "local_64") (== "==") (cast_expression "(int *)PTR_DAT_000a4fac" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_000a4fac"))) () ")")) (goto_statement "goto LAB_0002f5cf;" (goto "goto") (statement_identifier "LAB_0002f5cf") (; ";"))) (goto_statement "goto LAB_0002ddec;" (goto "goto") (statement_identifier "LAB_0002ddec") (; ";")) (} "}"))) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" (identifier "sVar4") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" (identifier "FUN_0001d300") (argument_list "(pcVar16,sVar4)" (( "(") (identifier "pcVar16") (, ",") (identifier "sVar4") () ")"))) (; ";")) (expression_statement "FUN_0001d220(pcVar16);" (call_expression "FUN_0001d220(pcVar16)" (identifier "FUN_0001d220") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;" (if "if") (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" (( "(") (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" (identifier "local_64") (!= "!=") (cast_expression "(int *)PTR_DAT_000a4fac" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_000a4fac"))) () ")")) (goto_statement "goto LAB_0002ddec;" (goto "goto") (statement_identifier "LAB_0002ddec") (; ";"))) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);" (assignment_expression "iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "iVar7") (= "=") (call_expression "FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20)" (identifier "FUN_00018f20") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x20)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x20") () ")")))) (; ";")) (expression_statement "piVar8[0x2f] = iVar7;" (assignment_expression "piVar8[0x2f] = iVar7" (subscript_expression "piVar8[0x2f]" (identifier "piVar8") ([ "[") (number_literal "0x2f") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);" (assignment_expression "local_64 = (int *)FUN_000509f0(iVar7,0,local_2c)" (identifier "local_64") (= "=") (cast_expression "(int *)FUN_000509f0(iVar7,0,local_2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000509f0(iVar7,0,local_2c)" (identifier "FUN_000509f0") (argument_list "(iVar7,0,local_2c)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (identifier "local_2c") () ")"))))) (; ";")) (if_statement "if (local_64 != (int *)PTR_DAT_000a4fac) {\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" (if "if") (parenthesized_expression "(local_64 != (int *)PTR_DAT_000a4fac)" (( "(") (binary_expression "local_64 != (int *)PTR_DAT_000a4fac" (identifier "local_64") (!= "!=") (cast_expression "(int *)PTR_DAT_000a4fac" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_DAT_000a4fac"))) () ")")) (compound_statement "{\nLAB_0002ddec:\n            local_60 = local_2c;\n            if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }\n          }" ({ "{") (labeled_statement "LAB_0002ddec:\n            local_60 = local_2c;" (statement_identifier "LAB_0002ddec") (: ":") (expression_statement "local_60 = local_2c;" (assignment_expression "local_60 = local_2c" (identifier "local_60") (= "=") (identifier "local_2c")) (; ";"))) (if_statement "if (local_64 != (int *)0x0) {\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" (if "if") (parenthesized_expression "(local_64 != (int *)0x0)" (( "(") (binary_expression "local_64 != (int *)0x0" (identifier "local_64") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              iVar7 = FUN_00029d20();\n              piVar8[0x2e] = iVar7;\n              FUN_00029e50();\n              FUN_00029e50();\n              FUN_00029e50();\n              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n              FUN_00029c40();\n              FUN_00029e50();\n              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);\n              puVar10 = (undefined4 *)piVar8[0x2e];\n              local_24 = 0;\n              FUN_00029c40();\n              puVar10[6] = *puVar10;\n              FUN_00029dc0();\n              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }\n              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);\n              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }\n              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n              local_54 = local_54 + *(int *)(param_1 + 0xe4);\n              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);\n              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }\n              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);\n              FUN_0002bf40(local_30,uVar17,local_2c[0]);\n              FUN_0001d220(uVar11);\n              FUN_0001d220(uVar17);\n              FUN_0001d220(puVar13);\n              FUN_00033b40();\n              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");\n              piVar8[1] = 1;\n              (**(code **)(*local_64 + 4))(local_64[1]);\n              FUN_0001d220(local_64[2]);\n              FUN_0001d220(local_64);\n              iVar7 = piVar8[3];\n              goto LAB_0002d2f8;\n            }" ({ "{") (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_2c[0]._1_3_,1)" (identifier "CONCAT31") (argument_list "(local_2c[0]._1_3_,1)" (( "(") (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);" (assignment_expression "uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" (identifier "uVar11") (= "=") (call_expression "(**(code **)(*local_64 + 0xc))(local_64[1],&local_30)" (parenthesized_expression "(**(code **)(*local_64 + 0xc))" (( "(") (pointer_expression "**(code **)(*local_64 + 0xc)" (* "*") (pointer_expression "*(code **)(*local_64 + 0xc)" (* "*") (cast_expression "(code **)(*local_64 + 0xc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_64 + 0xc)" (( "(") (binary_expression "*local_64 + 0xc" (pointer_expression "*local_64" (* "*") (identifier "local_64")) (+ "+") (number_literal "0xc")) () ")"))))) () ")")) (argument_list "(local_64[1],&local_30)" (( "(") (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")")))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (identifier "iVar7") (= "=") (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (+ "+") (number_literal "-1")) (+ "+") (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {\n                iVar7 = iVar7 + -4;\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) != 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) != 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" (( "(") (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" (* "*") (cast_expression "(byte *)(param_1 + 0x50)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar7 = iVar7 + -4;\n              }" ({ "{") (expression_statement "iVar7 = iVar7 + -4;" (assignment_expression "iVar7 = iVar7 + -4" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -4" (identifier "iVar7") (+ "+") (number_literal "-4"))) (; ";")) (} "}"))) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7,1)" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)FUN_0001c990(iVar7,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c990(iVar7,1)" (identifier "FUN_0001c990") (argument_list "(iVar7,1)" (( "(") (identifier "iVar7") (, ",") (number_literal "1") () ")"))))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }\n              else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" (( "(") (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" (* "*") (cast_expression "(byte *)(param_1 + 0x50)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                local_54 = 4;\n                *puVar13 = *(undefined1 *)(param_1 + 0xe7);\n                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);\n                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);\n                __dest = puVar13 + 4;\n              }" ({ "{") (expression_statement "local_54 = 4;" (assignment_expression "local_54 = 4" (identifier "local_54") (= "=") (number_literal "4")) (; ";")) (expression_statement "*puVar13 = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*puVar13 = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe7)" (( "(") (binary_expression "param_1 + 0xe7" (identifier "param_1") (+ "+") (number_literal "0xe7")) () ")"))))) (; ";")) (expression_statement "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6)" (subscript_expression "puVar13[1]" (identifier "puVar13") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xe6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe6)" (( "(") (binary_expression "param_1 + 0xe6" (identifier "param_1") (+ "+") (number_literal "0xe6")) () ")")))))) (; ";")) (expression_statement "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (subscript_expression "puVar13[2]" (identifier "puVar13") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (( "(") (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4)" (subscript_expression "puVar13[3]" (identifier "puVar13") ([ "[") (number_literal "3") (] "]")) (= "=") (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))))) (; ";")) (expression_statement "__dest = puVar13 + 4;" (assignment_expression "__dest = puVar13 + 4" (identifier "__dest") (= "=") (binary_expression "puVar13 + 4" (identifier "puVar13") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n                local_54 = 0;\n                __dest = puVar13;\n              }" (else "else") (compound_statement "{\n                local_54 = 0;\n                __dest = puVar13;\n              }" ({ "{") (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "__dest = puVar13;" (assignment_expression "__dest = puVar13" (identifier "__dest") (= "=") (identifier "puVar13")) (; ";")) (} "}")))) (expression_statement "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" (identifier "memcpy") (argument_list "(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" (( "(") (identifier "__dest") (, ",") (cast_expression "(void *)(param_1 + 0xa4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa4)" (( "(") (binary_expression "param_1 + 0xa4" (identifier "param_1") (+ "+") (number_literal "0xa4")) () ")"))) (, ",") (pointer_expression "*(size_t *)(param_1 + 0xe4)" (* "*") (cast_expression "(size_t *)(param_1 + 0xe4)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) () ")"))) (; ";")) (expression_statement "local_54 = local_54 + *(int *)(param_1 + 0xe4);" (assignment_expression "local_54 = local_54 + *(int *)(param_1 + 0xe4)" (identifier "local_54") (= "=") (binary_expression "local_54 + *(int *)(param_1 + 0xe4)" (identifier "local_54") (+ "+") (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))))) (; ";")) (expression_statement "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5);" (call_expression "memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" (identifier "memcpy") (argument_list "(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),\n                     *(int *)piVar8[0x2e] - 5)" (( "(") (binary_expression "puVar13 + local_54" (identifier "puVar13") (+ "+") (identifier "local_54")) (, ",") (cast_expression "(void *)(((int *)piVar8[0x2e])[4] + 5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int *)piVar8[0x2e])[4] + 5)" (( "(") (binary_expression "((int *)piVar8[0x2e])[4] + 5" (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" (( "(") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]"))) () ")")) ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "5")) () ")"))) (, ",") (binary_expression "*(int *)piVar8[0x2e] - 5" (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (- "-") (number_literal "5")) () ")"))) (; ";")) (if_statement "if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" (if "if") (parenthesized_expression "(iVar7 != local_54 + -5 + *(int *)piVar8[0x2e])" (( "(") (binary_expression "iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]" (identifier "iVar7") (!= "!=") (binary_expression "local_54 + -5 + *(int *)piVar8[0x2e]" (binary_expression "local_54 + -5" (identifier "local_54") (+ "+") (number_literal "-5")) (+ "+") (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))))) () ")")) (compound_statement "{\n                    \n                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");\n              }" ({ "{") (expression_statement "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");" (call_expression "__assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" (identifier "__assert_fail") (argument_list "("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn")" (( "(") (string_literal ""p == sigdata_len"" (" """) (string_content "p == sigdata_len") (" """)) (, ",") (string_literal ""ssh.c"" (" """) (string_content "ssh.c") (" """)) (, ",") (number_literal "0x2763") (, ",") (string_literal ""do_ssh2_authconn"" (" """) (string_content "do_ssh2_authconn") (" """)) () ")"))) (; ";")) (} "}"))) (expression_statement "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);" (assignment_expression "uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" (identifier "uVar17") (= "=") (call_expression "(**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60)" (parenthesized_expression "(**(code **)(*local_64 + 0x2c))" (( "(") (pointer_expression "**(code **)(*local_64 + 0x2c)" (* "*") (pointer_expression "*(code **)(*local_64 + 0x2c)" (* "*") (cast_expression "(code **)(*local_64 + 0x2c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_64 + 0x2c)" (( "(") (binary_expression "*local_64 + 0x2c" (pointer_expression "*local_64" (* "*") (identifier "local_64")) (+ "+") (number_literal "0x2c")) () ")"))))) () ")")) (argument_list "(local_64[1],puVar13,iVar7,local_60)" (( "(") (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) (, ",") (identifier "puVar13") (, ",") (identifier "iVar7") (, ",") (identifier "local_60") () ")")))) (; ";")) (expression_statement "FUN_0002bf40(local_30,uVar17,local_2c[0]);" (call_expression "FUN_0002bf40(local_30,uVar17,local_2c[0])" (identifier "FUN_0002bf40") (argument_list "(local_30,uVar17,local_2c[0])" (( "(") (identifier "local_30") (, ",") (identifier "uVar17") (, ",") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" (identifier "FUN_0001d220") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "FUN_0001d220(uVar17);" (call_expression "FUN_0001d220(uVar17)" (identifier "FUN_0001d220") (argument_list "(uVar17)" (( "(") (identifier "uVar17") () ")"))) (; ";")) (expression_statement "FUN_0001d220(puVar13);" (call_expression "FUN_0001d220(puVar13)" (identifier "FUN_0001d220") (argument_list "(puVar13)" (( "(") (identifier "puVar13") () ")"))) (; ";")) (expression_statement "FUN_00033b40();" (call_expression "FUN_00033b40()" (identifier "FUN_00033b40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent public key signature")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Sent public key signature"" (" """) (string_content "Sent public key signature") (" """)) () ")"))) (; ";")) (expression_statement "piVar8[1] = 1;" (assignment_expression "piVar8[1] = 1" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "(**(code **)(*local_64 + 4))(local_64[1]);" (call_expression "(**(code **)(*local_64 + 4))(local_64[1])" (parenthesized_expression "(**(code **)(*local_64 + 4))" (( "(") (pointer_expression "**(code **)(*local_64 + 4)" (* "*") (pointer_expression "*(code **)(*local_64 + 4)" (* "*") (cast_expression "(code **)(*local_64 + 4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_64 + 4)" (( "(") (binary_expression "*local_64 + 4" (pointer_expression "*local_64" (* "*") (identifier "local_64")) (+ "+") (number_literal "4")) () ")"))))) () ")")) (argument_list "(local_64[1])" (( "(") (subscript_expression "local_64[1]" (identifier "local_64") ([ "[") (number_literal "1") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0001d220(local_64[2]);" (call_expression "FUN_0001d220(local_64[2])" (identifier "FUN_0001d220") (argument_list "(local_64[2])" (( "(") (subscript_expression "local_64[2]" (identifier "local_64") ([ "[") (number_literal "2") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_0001d220(local_64);" (call_expression "FUN_0001d220(local_64)" (identifier "FUN_0001d220") (argument_list "(local_64)" (( "(") (identifier "local_64") () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_0002d2f8;" (goto "goto") (statement_identifier "LAB_0002d2f8") (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0002f5cf:\n          FUN_00029500();" (statement_identifier "LAB_0002f5cf") (: ":") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "strlen(local_2c[0]);" (call_expression "strlen(local_2c[0])" (identifier "strlen") (argument_list "(local_2c[0])" (( "(") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_0002d2f8;" (goto "goto") (statement_identifier "LAB_0002d2f8") (; ";")) (} "}"))) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar8[1] = 2;" (assignment_expression "piVar8[1] = 2" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "2")) (; ";")) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" (identifier "local_30") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0002d3e0;" (goto "goto") (statement_identifier "LAB_0002d3e0") (; ";")) (} "}"))) (goto_statement "goto LAB_0002f4f1;" (goto "goto") (statement_identifier "LAB_0002f4f1") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x25a0) {\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x25a0)" (( "(") (binary_expression "iVar7 == 0x25a0" (identifier "iVar7") (== "==") (number_literal "0x25a0")) () ")")) (compound_statement "{\n      if (param_4 != (int *)0x0) goto LAB_0002d3e0;\n      goto LAB_0002d310;\n    }" ({ "{") (if_statement "if (param_4 != (int *)0x0) goto LAB_0002d3e0;" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002d3e0;" (goto "goto") (statement_identifier "LAB_0002d3e0") (; ";"))) (goto_statement "goto LAB_0002d310;" (goto "goto") (statement_identifier "LAB_0002d310") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0x2650) goto LAB_0002d8a4;" (if "if") (parenthesized_expression "(iVar7 != 0x2650)" (( "(") (binary_expression "iVar7 != 0x2650" (identifier "iVar7") (!= "!=") (number_literal "0x2650")) () ")")) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";"))) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }\n      piVar8[3] = 1;\n      goto LAB_0002d6ed;\n    }" ({ "{") (if_statement "if (param_4[2] == 0x3c) {\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" (if "if") (parenthesized_expression "(param_4[2] == 0x3c)" (( "(") (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n        if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);\n        FUN_00029c40();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        puVar10 = (undefined4 *)piVar8[0x2e];\n        local_24 = 0;\n        FUN_00029c40();\n        puVar10[6] = *puVar10;\n        FUN_00029dc0();\n        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);\n        piVar8[0x28] = iVar7;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }\n        iVar7 = iVar7 + 5 + piVar8[0x25];\n        piVar8[0x2a] = iVar7 + 4;\n        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);\n        piVar8[0x2c] = (int)puVar13;\n        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);\n        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);\n        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);\n        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];\n        piVar8[0x2b] = piVar8[0x2c] + 5;\n        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;\n        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = iVar7 + 4;\n        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);\n        iVar7 = piVar8[0x2b];\n        piVar8[0x2b] = piVar8[0x25] + iVar7;\n        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);\n        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);\n        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);\n        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];\n        iVar7 = piVar8[0x2b];\n        pvVar14 = (void *)(iVar7 + 4);\n        piVar8[0x2b] = (int)pvVar14;\n        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }\n        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));\n        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);\n        iVar7 = *(int *)piVar8[0x2e];\n        iVar5 = ((int *)piVar8[0x2e])[4];\n        piVar8[0x2b] = (int)pvVar14;\n        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);\n        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);\n        piVar8[0x2b] = (int)puVar13;\n        *puVar13 = 0;\n        *(undefined1 *)(piVar8[0x2b] + 1) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 2) = 0;\n        *(undefined1 *)(piVar8[0x2b] + 3) = 0;\n        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);\n        *(int *)(param_1 + 0x6d0) = iVar7;\n        if (iVar7 != 0) goto LAB_0002f388;\n        goto LAB_0002e806;\n      }" ({ "{") (if_statement "if (((byte)DAT_000a5b0c & 1) != 0) {\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" (if "if") (parenthesized_expression "(((byte)DAT_000a5b0c & 1) != 0)" (( "(") (binary_expression "((byte)DAT_000a5b0c & 1) != 0" (parenthesized_expression "((byte)DAT_000a5b0c & 1)" (( "(") (binary_expression "(byte)DAT_000a5b0c & 1" (cast_expression "(byte)DAT_000a5b0c" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "DAT_000a5b0c")) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00029500();\n          FUN_00029500();\n          FUN_00029500();\n        }" ({ "{") (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);" (assignment_expression "local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1)" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)CONCAT31(local_2c[0]._1_3_,1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "CONCAT31(local_2c[0]._1_3_,1)" (identifier "CONCAT31") (argument_list "(local_2c[0]._1_3_,1)" (( "(") (field_expression "local_2c[0]._1_3_" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (. ".") (field_identifier "_1_3_")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)piVar8[0x2e];" (assignment_expression "puVar10 = (undefined4 *)piVar8[0x2e]" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)piVar8[0x2e]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (; ";")) (expression_statement "local_24 = 0;" (assignment_expression "local_24 = 0" (identifier "local_24") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10[6] = *puVar10;" (assignment_expression "puVar10[6] = *puVar10" (subscript_expression "puVar10[6]" (identifier "puVar10") ([ "[") (number_literal "6") (] "]")) (= "=") (pointer_expression "*puVar10" (* "*") (identifier "puVar10"))) (; ";")) (expression_statement "FUN_00029dc0();" (call_expression "FUN_00029dc0()" (identifier "FUN_00029dc0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);" (assignment_expression "iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (identifier "iVar7") (= "=") (binary_expression "*(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4)" (binary_expression "*(int *)piVar8[0x2e] + -1" (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")))) (+ "+") (number_literal "-1")) (+ "+") (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))))) (; ";")) (expression_statement "piVar8[0x28] = iVar7;" (assignment_expression "piVar8[0x28] = iVar7" (subscript_expression "piVar8[0x28]" (identifier "piVar8") ([ "[") (number_literal "0x28") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          iVar7 = iVar7 + 4;\n        }\n        else {\n          piVar8[0x28] = iVar7 + -4;\n        }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" (( "(") (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" (* "*") (cast_expression "(byte *)(param_1 + 0x50)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar7 = iVar7 + 4;\n        }" ({ "{") (expression_statement "iVar7 = iVar7 + 4;" (assignment_expression "iVar7 = iVar7 + 4" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4"))) (; ";")) (} "}")) (else_clause "else {\n          piVar8[0x28] = iVar7 + -4;\n        }" (else "else") (compound_statement "{\n          piVar8[0x28] = iVar7 + -4;\n        }" ({ "{") (expression_statement "piVar8[0x28] = iVar7 + -4;" (assignment_expression "piVar8[0x28] = iVar7 + -4" (subscript_expression "piVar8[0x28]" (identifier "piVar8") ([ "[") (number_literal "0x28") (] "]")) (= "=") (binary_expression "iVar7 + -4" (identifier "iVar7") (+ "+") (number_literal "-4"))) (; ";")) (} "}")))) (expression_statement "iVar7 = iVar7 + 5 + piVar8[0x25];" (assignment_expression "iVar7 = iVar7 + 5 + piVar8[0x25]" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 5 + piVar8[0x25]" (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (+ "+") (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")))) (; ";")) (expression_statement "piVar8[0x2a] = iVar7 + 4;" (assignment_expression "piVar8[0x2a] = iVar7 + 4" (subscript_expression "piVar8[0x2a]" (identifier "piVar8") ([ "[") (number_literal "0x2a") (] "]")) (= "=") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);" (assignment_expression "puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1)" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)FUN_0001c990(iVar7 + 8,1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001c990(iVar7 + 8,1)" (identifier "FUN_0001c990") (argument_list "(iVar7 + 8,1)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) (, ",") (number_literal "1") () ")"))))) (; ";")) (expression_statement "piVar8[0x2c] = (int)puVar13;" (assignment_expression "piVar8[0x2c] = (int)puVar13" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (; ";")) (expression_statement "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab);" (assignment_expression "*puVar13 = *(undefined1 *)((int)piVar8 + 0xab)" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (pointer_expression "*(undefined1 *)((int)piVar8 + 0xab)" (* "*") (cast_expression "(undefined1 *)((int)piVar8 + 0xab)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0xab)" (( "(") (binary_expression "(int)piVar8 + 0xab" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0xab")) () ")"))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);" (assignment_expression "*(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa)" (pointer_expression "*(char *)(piVar8[0x2c] + 1)" (* "*") (cast_expression "(char *)(piVar8[0x2c] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2c] + 1)" (( "(") (binary_expression "piVar8[0x2c] + 1" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xaa)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)((int)piVar8 + 0xaa)" (* "*") (cast_expression "(undefined2 *)((int)piVar8 + 0xaa)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0xaa)" (( "(") (binary_expression "(int)piVar8 + 0xaa" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0xaa")) () ")")))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);" (assignment_expression "*(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8)" (pointer_expression "*(char *)(piVar8[0x2c] + 2)" (* "*") (cast_expression "(char *)(piVar8[0x2c] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2c] + 2)" (( "(") (binary_expression "piVar8[0x2c] + 2" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)piVar8[0x2a] >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)piVar8[0x2a] >> 8)" (( "(") (binary_expression "(uint)piVar8[0x2a] >> 8" (cast_expression "(uint)piVar8[0x2a]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar8[0x2a]" (identifier "piVar8") ([ "[") (number_literal "0x2a") (] "]"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];" (assignment_expression "*(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a]" (pointer_expression "*(char *)(piVar8[0x2c] + 3)" (* "*") (cast_expression "(char *)(piVar8[0x2c] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2c] + 3)" (( "(") (binary_expression "piVar8[0x2c] + 3" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)piVar8[0x2a]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar8[0x2a]" (identifier "piVar8") ([ "[") (number_literal "0x2a") (] "]")))) (; ";")) (expression_statement "piVar8[0x2b] = piVar8[0x2c] + 5;" (assignment_expression "piVar8[0x2b] = piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (binary_expression "piVar8[0x2c] + 5" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (+ "+") (number_literal "5"))) (; ";")) (expression_statement "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd;" (assignment_expression "*(undefined1 *)(piVar8[0x2c] + 4) = 0xd" (pointer_expression "*(undefined1 *)(piVar8[0x2c] + 4)" (* "*") (cast_expression "(undefined1 *)(piVar8[0x2c] + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2c] + 4)" (( "(") (binary_expression "piVar8[0x2c] + 4" (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (+ "+") (number_literal "4")) () ")")))) (= "=") (number_literal "0xd")) (; ";")) (expression_statement "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);" (assignment_expression "*(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97)" (pointer_expression "*(undefined1 *)piVar8[0x2b]" (* "*") (cast_expression "(undefined1 *)piVar8[0x2b]" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")))) (= "=") (pointer_expression "*(undefined1 *)((int)piVar8 + 0x97)" (* "*") (cast_expression "(undefined1 *)((int)piVar8 + 0x97)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0x97)" (( "(") (binary_expression "(int)piVar8 + 0x97" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0x97")) () ")"))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 1)" (( "(") (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0x96)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)((int)piVar8 + 0x96)" (* "*") (cast_expression "(undefined2 *)((int)piVar8 + 0x96)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0x96)" (( "(") (binary_expression "(int)piVar8 + 0x96" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0x96")) () ")")))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 2)" (( "(") (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)piVar8[0x25] >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)piVar8[0x25] >> 8)" (( "(") (binary_expression "(uint)piVar8[0x25] >> 8" (cast_expression "(uint)piVar8[0x25]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 3)" (( "(") (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)piVar8[0x25]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")))) (; ";")) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "piVar8[0x2b] = iVar7 + 4;" (assignment_expression "piVar8[0x2b] = iVar7 + 4" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);" (call_expression "memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" (identifier "memcpy") (argument_list "((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25])" (( "(") (cast_expression "(void *)(iVar7 + 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")"))) (, ",") (cast_expression "(void *)piVar8[0x22]" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x22]" (identifier "piVar8") ([ "[") (number_literal "0x22") (] "]"))) (, ",") (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "piVar8[0x2b] = piVar8[0x25] + iVar7;" (assignment_expression "piVar8[0x2b] = piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);" (assignment_expression "*(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3)" (pointer_expression "*(undefined1 *)(piVar8[0x25] + iVar7)" (* "*") (cast_expression "(undefined1 *)(piVar8[0x25] + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x25] + iVar7)" (( "(") (binary_expression "piVar8[0x25] + iVar7" (subscript_expression "piVar8[0x25]" (identifier "piVar8") ([ "[") (number_literal "0x25") (] "]")) (+ "+") (identifier "iVar7")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)((int)piVar8 + 0xa3)" (* "*") (cast_expression "(undefined1 *)((int)piVar8 + 0xa3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0xa3)" (( "(") (binary_expression "(int)piVar8 + 0xa3" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0xa3")) () ")"))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 1)" (( "(") (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)((int)piVar8 + 0xa2)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)((int)piVar8 + 0xa2)" (* "*") (cast_expression "(undefined2 *)((int)piVar8 + 0xa2)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar8 + 0xa2)" (( "(") (binary_expression "(int)piVar8 + 0xa2" (cast_expression "(int)piVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar8")) (+ "+") (number_literal "0xa2")) () ")")))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 2)" (( "(") (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)piVar8[0x28] >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)piVar8[0x28] >> 8)" (( "(") (binary_expression "(uint)piVar8[0x28] >> 8" (cast_expression "(uint)piVar8[0x28]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar8[0x28]" (identifier "piVar8") ([ "[") (number_literal "0x28") (] "]"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28]" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 3)" (( "(") (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)piVar8[0x28]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "piVar8[0x28]" (identifier "piVar8") ([ "[") (number_literal "0x28") (] "]")))) (; ";")) (expression_statement "iVar7 = piVar8[0x2b];" (assignment_expression "iVar7 = piVar8[0x2b]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "pvVar14 = (void *)(iVar7 + 4);" (assignment_expression "pvVar14 = (void *)(iVar7 + 4)" (identifier "pvVar14") (= "=") (cast_expression "(void *)(iVar7 + 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (cast_expression "(int)pvVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar14"))) (; ";")) (if_statement "if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" (if "if") (parenthesized_expression "((*(byte *)(param_1 + 0x50) & 0x80) == 0)" (( "(") (binary_expression "(*(byte *)(param_1 + 0x50) & 0x80) == 0" (parenthesized_expression "(*(byte *)(param_1 + 0x50) & 0x80)" (( "(") (binary_expression "*(byte *)(param_1 + 0x50) & 0x80" (pointer_expression "*(byte *)(param_1 + 0x50)" (* "*") (cast_expression "(byte *)(param_1 + 0x50)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0x80")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);\n          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);\n          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);\n          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);\n          pvVar14 = (void *)(piVar8[0x2b] + 4);\n          piVar8[0x2b] = (int)pvVar14;\n        }" ({ "{") (expression_statement "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);" (assignment_expression "*(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7)" (pointer_expression "*(undefined1 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined1 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(param_1 + 0xe7)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xe7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe7)" (( "(") (binary_expression "param_1 + 0xe7" (identifier "param_1") (+ "+") (number_literal "0xe7")) () ")"))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);" (assignment_expression "*(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6)" (pointer_expression "*(char *)(piVar8[0x2b] + 1)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 1)" (( "(") (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)*(undefined2 *)(param_1 + 0xe6)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined2 *)(param_1 + 0xe6)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0xe6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe6)" (( "(") (binary_expression "param_1 + 0xe6" (identifier "param_1") (+ "+") (number_literal "0xe6")) () ")")))))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);" (assignment_expression "*(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (pointer_expression "*(char *)(piVar8[0x2b] + 2)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 2)" (( "(") (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)*(undefined4 *)(param_1 + 0xe4) >> 8)" (( "(") (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4) >> 8" (binary_expression "(uint)*(undefined4 *)(param_1 + 0xe4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);" (assignment_expression "*(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4)" (pointer_expression "*(char *)(piVar8[0x2b] + 3)" (* "*") (cast_expression "(char *)(piVar8[0x2b] + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 3)" (( "(") (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (cast_expression "(char)*(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*(undefined4 *)(param_1 + 0xe4)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0xe4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))))) (; ";")) (expression_statement "pvVar14 = (void *)(piVar8[0x2b] + 4);" (assignment_expression "pvVar14 = (void *)(piVar8[0x2b] + 4)" (identifier "pvVar14") (= "=") (cast_expression "(void *)(piVar8[0x2b] + 4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 4)" (( "(") (binary_expression "piVar8[0x2b] + 4" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (cast_expression "(int)pvVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar14"))) (; ";")) (} "}"))) (expression_statement "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));" (call_expression "memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" (identifier "memcpy") (argument_list "(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4))" (( "(") (identifier "pvVar14") (, ",") (cast_expression "(void *)(param_1 + 0xa4)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa4)" (( "(") (binary_expression "param_1 + 0xa4" (identifier "param_1") (+ "+") (number_literal "0xa4")) () ")"))) (, ",") (pointer_expression "*(size_t *)(param_1 + 0xe4)" (* "*") (cast_expression "(size_t *)(param_1 + 0xe4)" (( "(") (type_descriptor "size_t *" (primitive_type "size_t") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) () ")"))) (; ";")) (expression_statement "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);" (assignment_expression "pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" (identifier "pvVar14") (= "=") (cast_expression "(void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xe4) + piVar8[0x2b])" (( "(") (binary_expression "*(int *)(param_1 + 0xe4) + piVar8[0x2b]" (pointer_expression "*(int *)(param_1 + 0xe4)" (* "*") (cast_expression "(int *)(param_1 + 0xe4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xe4)" (( "(") (binary_expression "param_1 + 0xe4" (identifier "param_1") (+ "+") (number_literal "0xe4")) () ")")))) (+ "+") (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]"))) () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)piVar8[0x2e];" (assignment_expression "iVar7 = *(int *)piVar8[0x2e]" (identifier "iVar7") (= "=") (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]"))))) (; ";")) (expression_statement "iVar5 = ((int *)piVar8[0x2e])[4];" (assignment_expression "iVar5 = ((int *)piVar8[0x2e])[4]" (identifier "iVar5") (= "=") (subscript_expression "((int *)piVar8[0x2e])[4]" (parenthesized_expression "((int *)piVar8[0x2e])" (( "(") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]"))) () ")")) ([ "[") (number_literal "4") (] "]"))) (; ";")) (expression_statement "piVar8[0x2b] = (int)pvVar14;" (assignment_expression "piVar8[0x2b] = (int)pvVar14" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (cast_expression "(int)pvVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pvVar14"))) (; ";")) (expression_statement "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);" (call_expression "memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" (identifier "memcpy") (argument_list "(pvVar14,(void *)(iVar5 + 5),iVar7 - 5)" (( "(") (identifier "pvVar14") (, ",") (cast_expression "(void *)(iVar5 + 5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 5)" (( "(") (binary_expression "iVar5 + 5" (identifier "iVar5") (+ "+") (number_literal "5")) () ")"))) (, ",") (binary_expression "iVar7 - 5" (identifier "iVar7") (- "-") (number_literal "5")) () ")"))) (; ";")) (expression_statement "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);" (assignment_expression "puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" (identifier "puVar13") (= "=") (cast_expression "(undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e])" (( "(") (binary_expression "piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]" (binary_expression "piVar8[0x2b] + -5" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "-5")) (+ "+") (pointer_expression "*(int *)piVar8[0x2e]" (* "*") (cast_expression "(int *)piVar8[0x2e]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]"))))) () ")")))) (; ";")) (expression_statement "piVar8[0x2b] = (int)puVar13;" (assignment_expression "piVar8[0x2b] = (int)puVar13" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (cast_expression "(int)puVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar13"))) (; ";")) (expression_statement "*puVar13 = 0;" (assignment_expression "*puVar13 = 0" (pointer_expression "*puVar13" (* "*") (identifier "puVar13")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 1) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 1) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 1)" (* "*") (cast_expression "(undefined1 *)(piVar8[0x2b] + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 1)" (( "(") (binary_expression "piVar8[0x2b] + 1" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 2) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 2) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 2)" (* "*") (cast_expression "(undefined1 *)(piVar8[0x2b] + 2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 2)" (( "(") (binary_expression "piVar8[0x2b] + 2" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "2")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(piVar8[0x2b] + 3) = 0;" (assignment_expression "*(undefined1 *)(piVar8[0x2b] + 3) = 0" (pointer_expression "*(undefined1 *)(piVar8[0x2b] + 3)" (* "*") (cast_expression "(undefined1 *)(piVar8[0x2b] + 3)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0x2b] + 3)" (( "(") (binary_expression "piVar8[0x2b] + 3" (subscript_expression "piVar8[0x2b]" (identifier "piVar8") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "3")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1);" (assignment_expression "iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" (identifier "iVar7") (= "=") (call_expression "FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" (identifier "FUN_00061990") (argument_list "(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,\n                             param_1)" (( "(") (subscript_expression "piVar8[0x2c]" (identifier "piVar8") ([ "[") (number_literal "0x2c") (] "]")) (, ",") (binary_expression "piVar8[0x2a] + 4" (subscript_expression "piVar8[0x2a]" (identifier "piVar8") ([ "[") (number_literal "0x2a") (] "]")) (+ "+") (number_literal "4")) (, ",") (identifier "local_2c") (, ",") (binary_expression "piVar8 + 0x29" (identifier "piVar8") (+ "+") (number_literal "0x29")) (, ",") (identifier "FUN_0003be30") (, ",") (identifier "param_1") () ")")))) (; ";")) (expression_statement "*(int *)(param_1 + 0x6d0) = iVar7;" (assignment_expression "*(int *)(param_1 + 0x6d0) = iVar7" (pointer_expression "*(int *)(param_1 + 0x6d0)" (* "*") (cast_expression "(int *)(param_1 + 0x6d0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x6d0)" (( "(") (binary_expression "param_1 + 0x6d0" (identifier "param_1") (+ "+") (number_literal "0x6d0")) () ")")))) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0002f388;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0002f388;" (goto "goto") (statement_identifier "LAB_0002f388") (; ";"))) (goto_statement "goto LAB_0002e806;" (goto "goto") (statement_identifier "LAB_0002e806") (; ";")) (} "}"))) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002d6ed;" (goto "goto") (statement_identifier "LAB_0002d6ed") (; ";")) (} "}"))) (labeled_statement "LAB_0002e2e0:\n    *piVar8 = 0x2650;" (statement_identifier "LAB_0002e2e0") (: ":") (expression_statement "*piVar8 = 0x2650;" (assignment_expression "*piVar8 = 0x2650" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2650")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x2917) {\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0x2917)" (( "(") (binary_expression "iVar7 == 0x2917" (identifier "iVar7") (== "==") (number_literal "0x2917")) () ")")) (compound_statement "{\n    if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }\nLAB_0002dd1c:\n    *piVar8 = 0x2917;\n    goto LAB_0002d320;\n  }" ({ "{") (if_statement "if (param_4 != (int *)0x0) {\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar7 = param_4[2];\n      pcVar16 = "Server requested password change";\njoined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }\n      pcVar16 = (char *)piVar8[0x12];\n      piVar8[3] = 1;\n      sVar4 = strlen(pcVar16);\n      FUN_0001d300(pcVar16,sVar4);\n      FUN_0001d220(piVar8[0x12]);\n      iVar7 = piVar8[3];\n      goto LAB_0002d2f8;\n    }" ({ "{") (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" (identifier "iVar7") (= "=") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar16 = "Server requested password change";" (assignment_expression "pcVar16 = "Server requested password change"" (identifier "pcVar16") (= "=") (string_literal ""Server requested password change"" (" """) (string_content "Server requested password change") (" """))) (; ";")) (labeled_statement "joined_r0x0002e302:\n      if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" (statement_identifier "joined_r0x0002e302") (: ":") (if_statement "if (iVar7 == 0x3c) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0x3c)" (( "(") (binary_expression "iVar7 == 0x3c" (identifier "iVar7") (== "==") (number_literal "0x3c")) () ")")) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);\n        strlen(pcVar16);\n        FUN_00029500();\n        FUN_00029500();\n        FUN_000273d0();\n        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n        piVar8[0xf] = (int)puVar10;\n        *puVar10 = 1;\n        uVar11 = FUN_0001caa0("New SSH password");\n        puVar10[1] = uVar11;\n        iVar7 = piVar8[0xf];\n        pcVar16 = local_30;\n        if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }\n        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;\n        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Enter new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        uVar11 = FUN_0001caa0("Confirm new password: ");\n        FUN_0001ce70(piVar8[0xf],uVar11,0);\n        while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_00029c40();\n        FUN_00029e50();\n        FUN_00029e50();\n        FUN_0001c2f0(piVar8[0xf]);\n        FUN_00038450();\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");\nLAB_0002e515:\n        *piVar8 = 0x2999;\n        goto LAB_0002d320;\n      }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16)" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),pcVar16)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "strlen(pcVar16);" (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_0001ca50") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("New SSH password");" (assignment_expression "uVar11 = FUN_0001caa0("New SSH password")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("New SSH password")" (identifier "FUN_0001caa0") (argument_list "("New SSH password")" (( "(") (string_literal ""New SSH password"" (" """) (string_content "New SSH password") (" """)) () ")")))) (; ";")) (expression_statement "puVar10[1] = uVar11;" (assignment_expression "puVar10[1] = uVar11" (subscript_expression "puVar10[1]" (identifier "puVar10") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "pcVar16 = local_30;" (assignment_expression "pcVar16 = local_30" (identifier "pcVar16") (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 == (char *)0x0) {\n          pcVar16 = "";\n        }" (if "if") (parenthesized_expression "(local_30 == (char *)0x0)" (( "(") (binary_expression "local_30 == (char *)0x0" (identifier "local_30") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar16 = "";\n        }" ({ "{") (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ (identifier "pcVar16") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16)" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("%.*s",local_2c[0],pcVar16)" (identifier "FUN_0001d000") (argument_list "("%.*s",local_2c[0],pcVar16)" (( "(") (string_literal ""%.*s"" (" """) (string_content "%.*s") (" """)) (, ",") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "*(undefined4 *)(piVar8[0xf] + 0x10) = 1;" (assignment_expression "*(undefined4 *)(piVar8[0xf] + 0x10) = 1" (pointer_expression "*(undefined4 *)(piVar8[0xf] + 0x10)" (* "*") (cast_expression "(undefined4 *)(piVar8[0xf] + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar8[0xf] + 0x10)" (( "(") (binary_expression "piVar8[0xf] + 0x10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");" (assignment_expression "uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("Current password (blank for previously entered password): ")" (identifier "FUN_0001caa0") (argument_list "("Current password (blank for previously entered password): ")" (( "(") (string_literal ""Current password (blank for previously entered password): "" (" """) (string_content "Current password (blank for previously entered password): ") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("Enter new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Enter new password: ")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("Enter new password: ")" (identifier "FUN_0001caa0") (argument_list "("Enter new password: ")" (( "(") (string_literal ""Enter new password: "" (" """) (string_content "Enter new password: ") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "uVar11 = FUN_0001caa0("Confirm new password: ");" (assignment_expression "uVar11 = FUN_0001caa0("Confirm new password: ")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("Confirm new password: ")" (identifier "FUN_0001caa0") (argument_list "("Confirm new password: ")" (( "(") (string_literal ""Confirm new password: "" (" """) (string_content "Confirm new password: ") (" """)) () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,0);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,0)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (number_literal "0") () ")"))) (; ";")) (while_statement "while( true ) {\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          iVar7 = FUN_000675f0(piVar8[0xf],0,0);\nLAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }\n          if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }\n          piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }\n          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));\n          if (iVar7 == 0) break;\n          FUN_00029500();\n        }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],0,0);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],0,0)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],0,0)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "LAB_0002e42a:\n          if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" (statement_identifier "LAB_0002e42a") (: ":") (if_statement "if (iVar7 < 0) {\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" (if "if") (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            *(undefined4 *)(param_1 + 0x100) = 1;\n            goto LAB_0002e5f0;\n          }" ({ "{") (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002e5f0;" (goto "goto") (statement_identifier "LAB_0002e5f0") (; ";")) (} "}")))) (if_statement "if (iVar7 == 0) {\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            FUN_0001c2f0(piVar8[0xf]);\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            goto LAB_0002ea71;\n          }" ({ "{") (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" (identifier "pcVar16") (= "=") (cast_expression "(char *)piVar8[0x12]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" (identifier "sVar4") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" (identifier "FUN_0001d300") (argument_list "(pcVar16,sVar4)" (( "(") (identifier "pcVar16") (, ",") (identifier "sVar4") () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x12])" (( "(") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_0002ea71;" (goto "goto") (statement_identifier "LAB_0002ea71") (; ";")) (} "}"))) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" (* "*") (cast_expression "(int **)(piVar8[0xf] + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0xf] + 0x18)" (( "(") (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (**(char **)(*piVar9 + 8) != '\0') {\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" (if "if") (parenthesized_expression "(**(char **)(*piVar9 + 8) != '\0')" (( "(") (binary_expression "**(char **)(*piVar9 + 8) != '\0'" (pointer_expression "**(char **)(*piVar9 + 8)" (* "*") (pointer_expression "*(char **)(*piVar9 + 8)" (* "*") (cast_expression "(char **)(*piVar9 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*piVar9 + 8)" (( "(") (binary_expression "*piVar9 + 8" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (+ "+") (number_literal "8")) () ")"))))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            pcVar16 = (char *)piVar8[0x12];\n            sVar4 = strlen(pcVar16);\n            FUN_0001d300(pcVar16,sVar4);\n            FUN_0001d220(piVar8[0x12]);\n            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));\n            piVar8[0x12] = iVar7;\n            piVar9 = *(int **)(piVar8[0xf] + 0x18);\n          }" ({ "{") (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" (identifier "pcVar16") (= "=") (cast_expression "(char *)piVar8[0x12]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" (identifier "sVar4") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" (identifier "FUN_0001d300") (argument_list "(pcVar16,sVar4)" (( "(") (identifier "pcVar16") (, ",") (identifier "sVar4") () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x12])" (( "(") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));" (assignment_expression "iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (identifier "iVar7") (= "=") (call_expression "FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (identifier "FUN_0001caa0") (argument_list "(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8))" (( "(") (pointer_expression "*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" (* "*") (cast_expression "(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(piVar8[0xf] + 0x18) + 8)" (( "(") (binary_expression "**(int **)(piVar8[0xf] + 0x18) + 8" (pointer_expression "**(int **)(piVar8[0xf] + 0x18)" (* "*") (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" (* "*") (cast_expression "(int **)(piVar8[0xf] + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0xf] + 0x18)" (( "(") (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "piVar8[0x12] = iVar7;" (assignment_expression "piVar8[0x12] = iVar7" (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "piVar9 = *(int **)(piVar8[0xf] + 0x18);" (assignment_expression "piVar9 = *(int **)(piVar8[0xf] + 0x18)" (identifier "piVar9") (= "=") (pointer_expression "*(int **)(piVar8[0xf] + 0x18)" (* "*") (cast_expression "(int **)(piVar8[0xf] + 0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar8[0xf] + 0x18)" (( "(") (binary_expression "piVar8[0xf] + 0x18" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));" (assignment_expression "iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" (identifier "iVar7") (= "=") (call_expression "strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" (identifier "strcmp") (argument_list "(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8))" (( "(") (pointer_expression "*(char **)(piVar9[1] + 8)" (* "*") (cast_expression "(char **)(piVar9[1] + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9[1] + 8)" (( "(") (binary_expression "piVar9[1] + 8" (subscript_expression "piVar9[1]" (identifier "piVar9") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(char **)(piVar9[2] + 8)" (* "*") (cast_expression "(char **)(piVar9[2] + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar9[2] + 8)" (( "(") (binary_expression "piVar9[2] + 8" (subscript_expression "piVar9[2]" (identifier "piVar9") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "FUN_00029500();" (call_expression "FUN_00029500()" (identifier "FUN_00029500") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029c40();" (call_expression "FUN_00029c40()" (identifier "FUN_00029c40") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" (identifier "FUN_00038450") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Sent new password")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Sent new password"" (" """) (string_content "Sent new password") (" """)) () ")"))) (; ";")) (labeled_statement "LAB_0002e515:\n        *piVar8 = 0x2999;" (statement_identifier "LAB_0002e515") (: ":") (expression_statement "*piVar8 = 0x2999;" (assignment_expression "*piVar8 = 0x2999" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2999")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}")))) (expression_statement "pcVar16 = (char *)piVar8[0x12];" (assignment_expression "pcVar16 = (char *)piVar8[0x12]" (identifier "pcVar16") (= "=") (cast_expression "(char *)piVar8[0x12]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")))) (; ";")) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "sVar4 = strlen(pcVar16);" (assignment_expression "sVar4 = strlen(pcVar16)" (identifier "sVar4") (= "=") (call_expression "strlen(pcVar16)" (identifier "strlen") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "FUN_0001d300(pcVar16,sVar4);" (call_expression "FUN_0001d300(pcVar16,sVar4)" (identifier "FUN_0001d300") (argument_list "(pcVar16,sVar4)" (( "(") (identifier "pcVar16") (, ",") (identifier "sVar4") () ")"))) (; ";")) (expression_statement "FUN_0001d220(piVar8[0x12]);" (call_expression "FUN_0001d220(piVar8[0x12])" (identifier "FUN_0001d220") (argument_list "(piVar8[0x12])" (( "(") (subscript_expression "piVar8[0x12]" (identifier "piVar8") ([ "[") (number_literal "0x12") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = piVar8[3];" (assignment_expression "iVar7 = piVar8[3]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]"))) (; ";")) (goto_statement "goto LAB_0002d2f8;" (goto "goto") (statement_identifier "LAB_0002d2f8") (; ";")) (} "}"))) (labeled_statement "LAB_0002dd1c:\n    *piVar8 = 0x2917;" (statement_identifier "LAB_0002dd1c") (: ":") (expression_statement "*piVar8 = 0x2917;" (assignment_expression "*piVar8 = 0x2917" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2917")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (0x2917 < iVar7) {\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" (if "if") (parenthesized_expression "(0x2917 < iVar7)" (( "(") (binary_expression "0x2917 < iVar7" (number_literal "0x2917") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n    if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }\nLAB_0002dba9:\n    FUN_0001d000(pcVar16);\n    FUN_00027d60();\n    *piVar8 = 0;\n    goto LAB_0002d320;\n  }" ({ "{") (if_statement "if (iVar7 == 0x2a03) {\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }\n    else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" (if "if") (parenthesized_expression "(iVar7 == 0x2a03)" (( "(") (binary_expression "iVar7 == 0x2a03" (identifier "iVar7") (== "==") (number_literal "0x2a03")) () ")")) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_0002e0c6;\n      if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }\n    }" ({ "{") (if_statement "if (param_4 == (int *)0x0) goto LAB_0002e0c6;" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002e0c6;" (goto "goto") (statement_identifier "LAB_0002e0c6") (; ";"))) (if_statement "if (param_4[2] - 0x5bU < 2) {\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }\n      else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" (if "if") (parenthesized_expression "(param_4[2] - 0x5bU < 2)" (( "(") (binary_expression "param_4[2] - 0x5bU < 2" (binary_expression "param_4[2] - 0x5bU" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (- "-") (number_literal "0x5bU")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        iVar5 = FUN_00026ae0();\n        iVar7 = *(int *)(param_1 + 0x128);\n        if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }\n        pcVar16 = "Server\'s response to main channel open cited wrong channel number";\n      }" ({ "{") (expression_statement "iVar5 = FUN_00026ae0();" (assignment_expression "iVar5 = FUN_00026ae0()" (identifier "iVar5") (= "=") (call_expression "FUN_00026ae0()" (identifier "FUN_00026ae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (if_statement "if (iVar5 == *(int *)(iVar7 + 8)) {\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" (if "if") (parenthesized_expression "(iVar5 == *(int *)(iVar7 + 8))" (( "(") (binary_expression "iVar5 == *(int *)(iVar7 + 8)" (identifier "iVar5") (== "==") (pointer_expression "*(int *)(iVar7 + 8)" (* "*") (cast_expression "(int *)(iVar7 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")"))))) () ")")) (compound_statement "{\n          if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 4) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          *(undefined4 *)(iVar7 + 0x10) = 0;\n          *(undefined4 *)(iVar7 + 0xc) = 0;\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x2c) = uVar11;\n          iVar7 = *(int *)(param_1 + 0x128);\n          uVar11 = FUN_00026ae0();\n          *(undefined4 *)(iVar7 + 0x30) = uVar11;\n          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");\n          goto LAB_0002da71;\n        }" ({ "{") (if_statement "if (param_4[2] == 0x5c) {\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" (if "if") (parenthesized_expression "(param_4[2] == 0x5c)" (( "(") (binary_expression "param_4[2] == 0x5c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x5c")) () ")")) (compound_statement "{\n            uVar11 = FUN_000283a0();\n            FUN_0001d000("Server refused to open main channel: %s",uVar11);\n            FUN_00027d60();\n            FUN_0001d220(uVar11);\n            *piVar8 = 0;\n            goto LAB_0002d320;\n          }" ({ "{") (expression_statement "uVar11 = FUN_000283a0();" (assignment_expression "uVar11 = FUN_000283a0()" (identifier "uVar11") (= "=") (call_expression "FUN_000283a0()" (identifier "FUN_000283a0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "FUN_0001d000("Server refused to open main channel: %s",uVar11);" (call_expression "FUN_0001d000("Server refused to open main channel: %s",uVar11)" (identifier "FUN_0001d000") (argument_list "("Server refused to open main channel: %s",uVar11)" (( "(") (string_literal ""Server refused to open main channel: %s"" (" """) (string_content "Server refused to open main channel: %s") (" """)) (, ",") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" (identifier "FUN_00027d60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001d220(uVar11);" (call_expression "FUN_0001d220(uVar11)" (identifier "FUN_0001d220") (argument_list "(uVar11)" (( "(") (identifier "uVar11") () ")"))) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" (identifier "uVar11") (= "=") (call_expression "FUN_00026ae0()" (identifier "FUN_00026ae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" (identifier "uVar11") (= "=") (call_expression "FUN_00026ae0()" (identifier "FUN_00026ae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x2c) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x2c) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x2c)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x2c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x2c)" (( "(") (binary_expression "iVar7 + 0x2c" (identifier "iVar7") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = *(int *)(param_1 + 0x128);" (assignment_expression "iVar7 = *(int *)(param_1 + 0x128)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")"))))) (; ";")) (expression_statement "uVar11 = FUN_00026ae0();" (assignment_expression "uVar11 = FUN_00026ae0()" (identifier "uVar11") (= "=") (call_expression "FUN_00026ae0()" (identifier "FUN_00026ae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x30) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0x30) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0x30)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x30)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x30)" (( "(") (binary_expression "iVar7 + 0x30" (identifier "iVar7") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "FUN_00061e70(*(undefined4 *)(param_1 + 0x110));" (call_expression "FUN_00061e70(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_00061e70") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))) (; ";")) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Opened main channel")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Opened main channel"" (" """) (string_content "Opened main channel") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0002da71;" (goto "goto") (statement_identifier "LAB_0002da71") (; ";")) (} "}"))) (expression_statement "pcVar16 = "Server\'s response to main channel open cited wrong channel number";" (assignment_expression "pcVar16 = "Server\'s response to main channel open cited wrong channel number"" (identifier "pcVar16") (= "=") (string_literal ""Server\'s response to main channel open cited wrong channel number"" (" """) (string_content "Server") (escape_sequence "\'") (string_content "s response to main channel open cited wrong channel number") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" (else "else") (compound_statement "{\n        pcVar16 = "Server sent strange packet %d in response to main channel open request";\n      }" ({ "{") (expression_statement "pcVar16 = "Server sent strange packet %d in response to main channel open request";" (assignment_expression "pcVar16 = "Server sent strange packet %d in response to main channel open request"" (identifier "pcVar16") (= "=") (string_literal ""Server sent strange packet %d in response to main channel open request"" (" """) (string_content "Server sent strange packet %d in response to main channel open request") (" """))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" (else "else") (compound_statement "{\n      if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }\n      if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }\n      if (param_4 == (int *)0x0) goto LAB_0002f2ad;\n      if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }\n      if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }\n    }" ({ "{") (if_statement "if (iVar7 < 0x2a04) {\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" (if "if") (parenthesized_expression "(iVar7 < 0x2a04)" (( "(") (binary_expression "iVar7 < 0x2a04" (identifier "iVar7") (< "<") (number_literal "0x2a04")) () ")")) (compound_statement "{\n        if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }\n        if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }\nLAB_0002d8a4:\n        *piVar8 = 0;\n        goto LAB_0002d320;\n      }" ({ "{") (if_statement "if (iVar7 == 0x2956) {\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0x2956)" (( "(") (binary_expression "iVar7 == 0x2956" (identifier "iVar7") (== "==") (number_literal "0x2956")) () ")")) (compound_statement "{\n          if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }\nLAB_0002e5f0:\n          *piVar8 = 0x2956;\n          goto LAB_0002d320;\n        }" ({ "{") (if_statement "if (param_4 == (int *)0x0) {\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n            *(undefined4 *)(param_1 + 0x100) = 0;\n            goto LAB_0002e42a;\n          }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],param_2,param_3)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002e42a;" (goto "goto") (statement_identifier "LAB_0002e42a") (; ";")) (} "}"))) (labeled_statement "LAB_0002e5f0:\n          *piVar8 = 0x2956;" (statement_identifier "LAB_0002e5f0") (: ":") (expression_statement "*piVar8 = 0x2956;" (assignment_expression "*piVar8 = 0x2956" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x2956")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x2999) {\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0x2999)" (( "(") (binary_expression "iVar7 == 0x2999" (identifier "iVar7") (== "==") (number_literal "0x2999")) () ")")) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }\n          goto LAB_0002e515;\n        }" ({ "{") (if_statement "if (param_4 != (int *)0x0) {\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar7 = param_4[2];\n            pcVar16 = "Server rejected new password";\n            goto joined_r0x0002e302;\n          }" ({ "{") (expression_statement "iVar7 = param_4[2];" (assignment_expression "iVar7 = param_4[2]" (identifier "iVar7") (= "=") (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar16 = "Server rejected new password";" (assignment_expression "pcVar16 = "Server rejected new password"" (identifier "pcVar16") (= "=") (string_literal ""Server rejected new password"" (" """) (string_content "Server rejected new password") (" """))) (; ";")) (goto_statement "goto joined_r0x0002e302;" (goto "goto") (statement_identifier "joined_r0x0002e302") (; ";")) (} "}"))) (goto_statement "goto LAB_0002e515;" (goto "goto") (statement_identifier "LAB_0002e515") (; ";")) (} "}"))) (labeled_statement "LAB_0002d8a4:\n        *piVar8 = 0;" (statement_identifier "LAB_0002d8a4") (: ":") (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0x2a90) {\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" (if "if") (parenthesized_expression "(iVar7 != 0x2a90)" (( "(") (binary_expression "iVar7 != 0x2a90" (identifier "iVar7") (!= "!=") (number_literal "0x2a90")) () ")")) (compound_statement "{\n        if (iVar7 != 0x2abd) goto LAB_0002d8a4;\n        if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }\n        if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }\n        goto LAB_0002db95;\n      }" ({ "{") (if_statement "if (iVar7 != 0x2abd) goto LAB_0002d8a4;" (if "if") (parenthesized_expression "(iVar7 != 0x2abd)" (( "(") (binary_expression "iVar7 != 0x2abd" (identifier "iVar7") (!= "!=") (number_literal "0x2abd")) () ")")) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";"))) (if_statement "if (param_4 != (int *)0x0) {\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          pcVar16 = "Strange packet received: type %d";\n          goto LAB_0002dba9;\n        }" ({ "{") (expression_statement "pcVar16 = "Strange packet received: type %d";" (assignment_expression "pcVar16 = "Strange packet received: type %d"" (identifier "pcVar16") (= "=") (string_literal ""Strange packet received: type %d"" (" """) (string_content "Strange packet received: type %d") (" """))) (; ";")) (goto_statement "goto LAB_0002dba9;" (goto "goto") (statement_identifier "LAB_0002dba9") (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x128) != 0) {\n          FUN_00035a60();\n        }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x128) != 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x128) != 0" (pointer_expression "*(int *)(param_1 + 0x128)" (* "*") (cast_expression "(int *)(param_1 + 0x128)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x128)" (( "(") (binary_expression "param_1 + 0x128" (identifier "param_1") (+ "+") (number_literal "0x128")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_00035a60();\n        }" ({ "{") (expression_statement "FUN_00035a60();" (call_expression "FUN_00035a60()" (identifier "FUN_00035a60") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0002db95;" (goto "goto") (statement_identifier "LAB_0002db95") (; ";")) (} "}"))) (if_statement "if (param_4 == (int *)0x0) goto LAB_0002f2ad;" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002f2ad;" (goto "goto") (statement_identifier "LAB_0002f2ad") (; ";"))) (if_statement "if (param_4[2] == 99) {\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" (if "if") (parenthesized_expression "(param_4[2] == 99)" (( "(") (binary_expression "param_4[2] == 99" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "99")) () ")")) (compound_statement "{\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");\n        goto LAB_0002db48;\n      }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"Started a shell/command")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Started a shell/command"" (" """) (string_content "Started a shell/command") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0002db48;" (goto "goto") (statement_identifier "LAB_0002db48") (; ";")) (} "}"))) (if_statement "if (param_4[2] == 100) {\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }\n      else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" (if "if") (parenthesized_expression "(param_4[2] == 100)" (( "(") (binary_expression "param_4[2] == 100" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "100")) () ")")) (compound_statement "{\n        if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }\n        pcVar16 = "Server refused to start a shell/command";\n      }" ({ "{") (if_statement "if ((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           ) {\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" (if "if") (parenthesized_expression "((*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')\n           )" (( "(") (binary_expression "(*(int *)(param_1 + 0x174) == 0) &&\n           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" (parenthesized_expression "(*(int *)(param_1 + 0x174) == 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x174) == 0" (pointer_expression "*(int *)(param_1 + 0x174)" (* "*") (cast_expression "(int *)(param_1 + 0x174)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')" (( "(") (comma_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0'" (assignment_expression "pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" (identifier "pcVar16") (= "=") (cast_expression "(char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15)" (identifier "FUN_00018b50") (argument_list "(*(undefined4 *)(param_1 + 0x248),0x15)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x248)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x248)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x248)" (( "(") (binary_expression "param_1 + 0x248" (identifier "param_1") (+ "+") (number_literal "0x248")) () ")")))) (, ",") (number_literal "0x15") () ")"))))) (, ",") (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");\n          *(undefined4 *)(param_1 + 0x174) = 1;\n          goto LAB_0002feab;\n        }" ({ "{") (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback");" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),\n                       "Primary command failed; attempting fallback")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""Primary command failed; attempting fallback"" (" """) (string_content "Primary command failed; attempting fallback") (" """)) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x174) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x174) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x174)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x174)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x174)" (( "(") (binary_expression "param_1 + 0x174" (identifier "param_1") (+ "+") (number_literal "0x174")) () ")")))) (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_0002feab;" (goto "goto") (statement_identifier "LAB_0002feab") (; ";")) (} "}"))) (expression_statement "pcVar16 = "Server refused to start a shell/command";" (assignment_expression "pcVar16 = "Server refused to start a shell/command"" (identifier "pcVar16") (= "=") (string_literal ""Server refused to start a shell/command"" (" """) (string_content "Server refused to start a shell/command") (" """))) (; ";")) (} "}")) (else_clause "else {\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" (else "else") (compound_statement "{\n        pcVar16 = "Unexpected response to shell/command request: packet type %d";\n      }" ({ "{") (expression_statement "pcVar16 = "Unexpected response to shell/command request: packet type %d";" (assignment_expression "pcVar16 = "Unexpected response to shell/command request: packet type %d"" (identifier "pcVar16") (= "=") (string_literal ""Unexpected response to shell/command request: packet type %d"" (" """) (string_content "Unexpected response to shell/command request: packet type %d") (" """))) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_0002dba9:\n    FUN_0001d000(pcVar16);" (statement_identifier "LAB_0002dba9") (: ":") (expression_statement "FUN_0001d000(pcVar16);" (call_expression "FUN_0001d000(pcVar16)" (identifier "FUN_0001d000") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";"))) (expression_statement "FUN_00027d60();" (call_expression "FUN_00027d60()" (identifier "FUN_00027d60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*piVar8 = 0;" (assignment_expression "*piVar8 = 0" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002d320;" (goto "goto") (statement_identifier "LAB_0002d320") (; ";")) (} "}"))) (if_statement "if (iVar7 == 0x28a4) {\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }\n  else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0x28a4)" (( "(") (binary_expression "iVar7 == 0x28a4" (identifier "iVar7") (== "==") (number_literal "0x28a4")) () ")")) (compound_statement "{\n    if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }\n    *piVar8 = 0x28a4;\n  }" ({ "{") (if_statement "if (param_4 == (int *)0x0) {\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n      *(undefined4 *)(param_1 + 0x100) = 0;\nLAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }\n      *(undefined4 *)(param_1 + 0x100) = 1;\n    }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],param_2,param_3)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0002f51a:\n      if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" (statement_identifier "LAB_0002f51a") (: ":") (if_statement "if (-1 < iVar7) {\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" (if "if") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n        if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }\n        iVar5 = 0;\n        iVar7 = FUN_00029d20();\n        piVar8[0x2e] = iVar7;\n        FUN_00029e10();\n        if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }\n        FUN_00038450();\n        FUN_0001c2f0(piVar8[0xf]);\n        goto LAB_0002f35a;\n      }" ({ "{") (if_statement "if (iVar7 == 0) {\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar5 = piVar8[0xf];\n          goto LAB_0002ea6c;\n        }" ({ "{") (expression_statement "iVar5 = piVar8[0xf];" (assignment_expression "iVar5 = piVar8[0xf]" (identifier "iVar5") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (goto_statement "goto LAB_0002ea6c;" (goto "goto") (statement_identifier "LAB_0002ea6c") (; ";")) (} "}"))) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_00029d20();" (assignment_expression "iVar7 = FUN_00029d20()" (identifier "iVar7") (= "=") (call_expression "FUN_00029d20()" (identifier "FUN_00029d20") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x2e] = iVar7;" (assignment_expression "piVar8[0x2e] = iVar7" (subscript_expression "piVar8[0x2e]" (identifier "piVar8") ([ "[") (number_literal "0x2e") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (expression_statement "FUN_00029e10();" (call_expression "FUN_00029e10()" (identifier "FUN_00029e10") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (0 < piVar8[0x10]) {\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" (if "if") (parenthesized_expression "(0 < piVar8[0x10])" (( "(") (binary_expression "0 < piVar8[0x10]" (number_literal "0") (< "<") (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]"))) () ")")) (compound_statement "{\n          do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);\n        }" ({ "{") (do_statement "do {\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          } while (iVar5 < piVar8[0x10]);" (do "do") (compound_statement "{\n            iVar5 = iVar5 + 1;\n            FUN_00029e50();\n          }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "FUN_00029e50();" (call_expression "FUN_00029e50()" (identifier "FUN_00029e50") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < piVar8[0x10])" (( "(") (binary_expression "iVar5 < piVar8[0x10]" (identifier "iVar5") (< "<") (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00038450();" (call_expression "FUN_00038450()" (identifier "FUN_00038450") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_0001c2f0(piVar8[0xf]);" (call_expression "FUN_0001c2f0(piVar8[0xf])" (identifier "FUN_0001c2f0") (argument_list "(piVar8[0xf])" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) () ")"))) (; ";")) (goto_statement "goto LAB_0002f35a;" (goto "goto") (statement_identifier "LAB_0002f35a") (; ";")) (} "}")))) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 1;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 1" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*piVar8 = 0x28a4;" (assignment_expression "*piVar8 = 0x28a4" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x28a4")) (; ";")) (} "}")) (else_clause "else {\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" (else "else") (compound_statement "{\n    if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }\n    if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }\n    if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }\nLAB_0002f35a:\n    *piVar8 = 0x28ca;\n  }" ({ "{") (if_statement "if (iVar7 < 0x28a5) {\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" (if "if") (parenthesized_expression "(iVar7 < 0x28a5)" (( "(") (binary_expression "iVar7 < 0x28a5" (identifier "iVar7") (< "<") (number_literal "0x28a5")) () ")")) (compound_statement "{\n      if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }\n      if (iVar7 != 0x284b) goto LAB_0002d8a4;\n      if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\n      goto LAB_0002e166;\n    }" ({ "{") (if_statement "if (iVar7 == 0x2807) {\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" (if "if") (parenthesized_expression "(iVar7 == 0x2807)" (( "(") (binary_expression "iVar7 == 0x2807" (identifier "iVar7") (== "==") (number_literal "0x2807")) () ")")) (compound_statement "{\n        if (param_4 == (int *)0x0) goto LAB_0002fcf7;\n        if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }\n        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;\n        piVar8[0x39] = 4;\n        goto LAB_0002e970;\n      }" ({ "{") (if_statement "if (param_4 == (int *)0x0) goto LAB_0002fcf7;" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0002fcf7;" (goto "goto") (statement_identifier "LAB_0002fcf7") (; ";"))) (if_statement "if (param_4[2] == 0x3d) {\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" (if "if") (parenthesized_expression "(param_4[2] == 0x3d)" (( "(") (binary_expression "param_4[2] == 0x3d" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n          FUN_000273d0();\n          piVar8[0x35] = (int)local_30;\n          piVar8[0x34] = local_34;\n          iVar7 = piVar8[0x39];\n          if (iVar7 == 1) goto LAB_0002efad;\n          goto LAB_0002f049;\n        }" ({ "{") (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8[0x35] = (int)local_30;" (assignment_expression "piVar8[0x35] = (int)local_30" (subscript_expression "piVar8[0x35]" (identifier "piVar8") ([ "[") (number_literal "0x35") (] "]")) (= "=") (cast_expression "(int)local_30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_30"))) (; ";")) (expression_statement "piVar8[0x34] = local_34;" (assignment_expression "piVar8[0x34] = local_34" (subscript_expression "piVar8[0x34]" (identifier "piVar8") ([ "[") (number_literal "0x34") (] "]")) (= "=") (identifier "local_34")) (; ";")) (expression_statement "iVar7 = piVar8[0x39];" (assignment_expression "iVar7 = piVar8[0x39]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]"))) (; ";")) (if_statement "if (iVar7 == 1) goto LAB_0002efad;" (if "if") (parenthesized_expression "(iVar7 == 1)" (( "(") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1")) () ")")) (goto_statement "goto LAB_0002efad;" (goto "goto") (statement_identifier "LAB_0002efad") (; ";"))) (goto_statement "goto LAB_0002f049;" (goto "goto") (statement_identifier "LAB_0002f049") (; ";")) (} "}"))) (expression_statement "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")\n        ;" (call_expression "FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" (identifier "FUN_000628e0") (argument_list "(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) (, ",") (string_literal ""GSSAPI authentication - bad server response"" (" """) (string_content "GSSAPI authentication - bad server response") (" """)) () ")"))) (; ";")) (expression_statement "piVar8[0x39] = 4;" (assignment_expression "piVar8[0x39] = 4" (subscript_expression "piVar8[0x39]" (identifier "piVar8") ([ "[") (number_literal "0x39") (] "]")) (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_0002e970;" (goto "goto") (statement_identifier "LAB_0002e970") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0x284b) goto LAB_0002d8a4;" (if "if") (parenthesized_expression "(iVar7 != 0x284b)" (( "(") (binary_expression "iVar7 != 0x284b" (identifier "iVar7") (!= "!=") (number_literal "0x284b")) () ")")) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";"))) (if_statement "if (param_4 != (int *)0x0) {\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (param_4[2] == 0x3c) goto LAB_0002eda0;\n        piVar8[3] = 1;\n        piVar8[1] = 7;\n        piVar8[0xc] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" ({ "{") (if_statement "if (param_4[2] == 0x3c) goto LAB_0002eda0;" (if "if") (parenthesized_expression "(param_4[2] == 0x3c)" (( "(") (binary_expression "param_4[2] == 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x3c")) () ")")) (goto_statement "goto LAB_0002eda0;" (goto "goto") (statement_identifier "LAB_0002eda0") (; ";"))) (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "piVar8[1] = 7;" (assignment_expression "piVar8[1] = 7" (subscript_expression "piVar8[1]" (identifier "piVar8") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "piVar8[0xc] = 1;" (assignment_expression "piVar8[0xc] = 1" (subscript_expression "piVar8[0xc]" (identifier "piVar8") ([ "[") (number_literal "0xc") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" (identifier "local_30") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0002d3e0;" (goto "goto") (statement_identifier "LAB_0002d3e0") (; ";")) (} "}"))) (goto_statement "goto LAB_0002e166;" (goto "goto") (statement_identifier "LAB_0002e166") (; ";")) (} "}"))) (if_statement "if (iVar7 != 0x28ca) {\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" (if "if") (parenthesized_expression "(iVar7 != 0x28ca)" (( "(") (binary_expression "iVar7 != 0x28ca" (identifier "iVar7") (!= "!=") (number_literal "0x28ca")) () ")")) (compound_statement "{\n      if (iVar7 != 0x28e8) goto LAB_0002d8a4;\n      if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }\n      goto LAB_0002d68e;\n    }" ({ "{") (if_statement "if (iVar7 != 0x28e8) goto LAB_0002d8a4;" (if "if") (parenthesized_expression "(iVar7 != 0x28e8)" (( "(") (binary_expression "iVar7 != 0x28e8" (identifier "iVar7") (!= "!=") (number_literal "0x28e8")) () ")")) (goto_statement "goto LAB_0002d8a4;" (goto "goto") (statement_identifier "LAB_0002d8a4") (; ";"))) (if_statement "if (param_4 == (int *)0x0) {\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);\n        *(undefined4 *)(param_1 + 0x100) = 0;\n        goto LAB_0002dc60;\n      }" ({ "{") (expression_statement "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);" (assignment_expression "iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(piVar8[0xf],param_2,param_3)" (identifier "FUN_000675f0") (argument_list "(piVar8[0xf],param_2,param_3)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x100) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x100) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x100)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x100)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x100)" (( "(") (binary_expression "param_1 + 0x100" (identifier "param_1") (+ "+") (number_literal "0x100")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0002dc60;" (goto "goto") (statement_identifier "LAB_0002dc60") (; ";")) (} "}"))) (goto_statement "goto LAB_0002d68e;" (goto "goto") (statement_identifier "LAB_0002d68e") (; ";")) (} "}"))) (if_statement "if (param_4 != (int *)0x0) {\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }\nLAB_0002eda0:\n      FUN_000273d0();\n      FUN_000273d0();\n      FUN_000273d0();\n      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));\n      piVar8[0xf] = (int)puVar10;\n      *puVar10 = 1;\n      iVar7 = FUN_00026ae0();\n      piVar8[0x10] = iVar7;\n      if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }\n      iVar7 = piVar8[0xf];\n      if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }\n      if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }\n      iVar7 = FUN_000675f0(iVar7,0,0);\n      goto LAB_0002f51a;\n    }" ({ "{") (if_statement "if (param_4[2] != 0x3c) {\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" (if "if") (parenthesized_expression "(param_4[2] != 0x3c)" (( "(") (binary_expression "param_4[2] != 0x3c" (subscript_expression "param_4[2]" (identifier "param_4") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x3c")) () ")")) (compound_statement "{\n        piVar8[3] = 1;\n        local_30 = (char *)0x0;\n        local_2c[0] = (char *)0x0;\n        goto LAB_0002d3e0;\n      }" ({ "{") (expression_statement "piVar8[3] = 1;" (assignment_expression "piVar8[3] = 1" (subscript_expression "piVar8[3]" (identifier "piVar8") ([ "[") (number_literal "3") (] "]")) (= "=") (number_literal "1")) (; ";")) (expression_statement "local_30 = (char *)0x0;" (assignment_expression "local_30 = (char *)0x0" (identifier "local_30") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_2c[0] = (char *)0x0;" (assignment_expression "local_2c[0] = (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0002d3e0;" (goto "goto") (statement_identifier "LAB_0002d3e0") (; ";")) (} "}"))) (labeled_statement "LAB_0002eda0:\n      FUN_000273d0();" (statement_identifier "LAB_0002eda0") (: ":") (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));" (assignment_expression "puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "puVar10") (= "=") (cast_expression "(undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0001ca50(*(undefined4 *)(param_1 + 0x110))" (identifier "FUN_0001ca50") (argument_list "(*(undefined4 *)(param_1 + 0x110))" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x110)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x110)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x110)" (( "(") (binary_expression "param_1 + 0x110" (identifier "param_1") (+ "+") (number_literal "0x110")) () ")")))) () ")"))))) (; ";")) (expression_statement "piVar8[0xf] = (int)puVar10;" (assignment_expression "piVar8[0xf] = (int)puVar10" (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (= "=") (cast_expression "(int)puVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar10"))) (; ";")) (expression_statement "*puVar10 = 1;" (assignment_expression "*puVar10 = 1" (pointer_expression "*puVar10" (* "*") (identifier "puVar10")) (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar7 = FUN_00026ae0();" (assignment_expression "iVar7 = FUN_00026ae0()" (identifier "iVar7") (= "=") (call_expression "FUN_00026ae0()" (identifier "FUN_00026ae0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "piVar8[0x10] = iVar7;" (assignment_expression "piVar8[0x10] = iVar7" (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]")) (= "=") (identifier "iVar7")) (; ";")) (if_statement "if (0 < iVar7) {\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" (if "if") (parenthesized_expression "(0 < iVar7)" (( "(") (binary_expression "0 < iVar7" (number_literal "0") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n        iVar7 = 0;\n        do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);\n      }" ({ "{") (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        } while (iVar7 < piVar8[0x10]);" (do "do") (compound_statement "{\n          FUN_000273d0();\n          iVar5 = param_4[6];\n          bVar23 = false;\n          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }\n          if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }\n          iVar7 = iVar7 + 1;\n          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);\n          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);\n        }" ({ "{") (expression_statement "FUN_000273d0();" (call_expression "FUN_000273d0()" (identifier "FUN_000273d0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar5 = param_4[6];" (assignment_expression "iVar5 = param_4[6]" (identifier "iVar5") (= "=") (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]"))) (; ";")) (expression_statement "bVar23 = false;" (assignment_expression "bVar23 = false" (identifier "bVar23") (= "=") (false "false")) (; ";")) (if_statement "if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" (if "if") (parenthesized_expression "(*param_4 != iVar5 && -1 < *param_4 - iVar5)" (( "(") (binary_expression "*param_4 != iVar5 && -1 < *param_4 - iVar5" (binary_expression "*param_4 != iVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (!= "!=") (identifier "iVar5")) (&& "&&") (binary_expression "-1 < *param_4 - iVar5" (number_literal "-1") (< "<") (binary_expression "*param_4 - iVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (- "-") (identifier "iVar5")))) () ")")) (compound_statement "{\n            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';\n            param_4[6] = iVar5 + 1;\n          }" ({ "{") (expression_statement "bVar23 = *(char *)(param_4[5] + iVar5) != '\0';" (assignment_expression "bVar23 = *(char *)(param_4[5] + iVar5) != '\0'" (identifier "bVar23") (= "=") (binary_expression "*(char *)(param_4[5] + iVar5) != '\0'" (pointer_expression "*(char *)(param_4[5] + iVar5)" (* "*") (cast_expression "(char *)(param_4[5] + iVar5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4[5] + iVar5)" (( "(") (binary_expression "param_4[5] + iVar5" (subscript_expression "param_4[5]" (identifier "param_4") ([ "[") (number_literal "5") (] "]")) (+ "+") (identifier "iVar5")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) (; ";")) (expression_statement "param_4[6] = iVar5 + 1;" (assignment_expression "param_4[6] = iVar5 + 1" (subscript_expression "param_4[6]" (identifier "param_4") ([ "[") (number_literal "6") (] "]")) (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (local_2c[0] == (char *)0x0) {\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" (if "if") (parenthesized_expression "(local_2c[0] == (char *)0x0)" (( "(") (binary_expression "local_2c[0] == (char *)0x0" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            local_30 = s_<server_failed_to_send_prompt>__000a5120;\n            local_2c[0] = (char *)0x20;\n          }" ({ "{") (expression_statement "local_30 = s_<server_failed_to_send_prompt>__000a5120;" (assignment_expression "local_30 = s_<server_failed_to_send_prompt>__000a5120" (identifier "local_30") (= "=") (binary_expression "s_<server_failed_to_send_prompt>__000a5120" (binary_expression "s_<server_failed_to_send_prompt" (identifier "s_") (< "<") (identifier "server_failed_to_send_prompt")) (> ">") (identifier "__000a5120"))) (; ";")) (expression_statement "local_2c[0] = (char *)0x20;" (assignment_expression "local_2c[0] = (char *)0x20" (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x20" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x20"))) (; ";")) (} "}"))) (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);" (assignment_expression "uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30)" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("%.*s",local_2c[0],local_30)" (identifier "FUN_0001d000") (argument_list "("%.*s",local_2c[0],local_30)" (( "(") (string_literal ""%.*s"" (" """) (string_content "%.*s") (" """)) (, ",") (subscript_expression "local_2c[0]" (identifier "local_2c") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_30") () ")")))) (; ";")) (expression_statement "FUN_0001ce70(piVar8[0xf],uVar11,bVar23);" (call_expression "FUN_0001ce70(piVar8[0xf],uVar11,bVar23)" (identifier "FUN_0001ce70") (argument_list "(piVar8[0xf],uVar11,bVar23)" (( "(") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]")) (, ",") (identifier "uVar11") (, ",") (identifier "bVar23") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 < piVar8[0x10])" (( "(") (binary_expression "iVar7 < piVar8[0x10]" (identifier "iVar7") (< "<") (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]"))) () ")")) (; ";")) (} "}"))) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (if_statement "if (local_3c == 0) {\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }\n      else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar11 = FUN_0001caa0("SSH server authentication");\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 0;\n      }" ({ "{") (expression_statement "uVar11 = FUN_0001caa0("SSH server authentication");" (assignment_expression "uVar11 = FUN_0001caa0("SSH server authentication")" (identifier "uVar11") (= "=") (call_expression "FUN_0001caa0("SSH server authentication")" (identifier "FUN_0001caa0") (argument_list "("SSH server authentication")" (( "(") (string_literal ""SSH server authentication"" (" """) (string_content "SSH server authentication") (" """)) () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 8) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" (else "else") (compound_statement "{\n        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);\n        *(undefined4 *)(iVar7 + 4) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 8) = 1;\n      }" ({ "{") (expression_statement "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);" (assignment_expression "uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48)" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("SSH server: %.*s",local_3c,local_48)" (identifier "FUN_0001d000") (argument_list "("SSH server: %.*s",local_3c,local_48)" (( "(") (string_literal ""SSH server: %.*s"" (" """) (string_content "SSH server: %.*s") (" """)) (, ",") (identifier "local_3c") (, ",") (identifier "local_48") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 4) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 4) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 4)" (( "(") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 8) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 8) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 8)" (( "(") (binary_expression "iVar7 + 8" (identifier "iVar7") (+ "+") (number_literal "8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (if_statement "if (piVar8[0x10] == 0 && local_3c == 0) {\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }\n      else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" (if "if") (parenthesized_expression "(piVar8[0x10] == 0 && local_3c == 0)" (( "(") (binary_expression "piVar8[0x10] == 0 && local_3c == 0" (binary_expression "piVar8[0x10] == 0" (subscript_expression "piVar8[0x10]" (identifier "piVar8") ([ "[") (number_literal "0x10") (] "]")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0"))) () ")")) (compound_statement "{\n        if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }\n        *(undefined4 *)(iVar7 + 0x10) = 0;\n      }" ({ "{") (if_statement "if (local_38 != 0) {\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" (if "if") (parenthesized_expression "(local_38 != 0)" (( "(") (binary_expression "local_38 != 0" (identifier "local_38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          puVar15 = &DAT_0007148e;\n          goto LAB_0002fa3b;\n        }" ({ "{") (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" (identifier "puVar15") (= "=") (pointer_expression "&DAT_0007148e" (& "&") (identifier "DAT_0007148e"))) (; ";")) (goto_statement "goto LAB_0002fa3b;" (goto "goto") (statement_identifier "LAB_0002fa3b") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 0;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 0" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" (else "else") (compound_statement "{\n        puVar15 = &DAT_0007148e;\n        if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }\nLAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);\n        *(undefined4 *)(iVar7 + 0xc) = uVar11;\n        iVar7 = piVar8[0xf];\n        *(undefined4 *)(iVar7 + 0x10) = 1;\n      }" ({ "{") (expression_statement "puVar15 = &DAT_0007148e;" (assignment_expression "puVar15 = &DAT_0007148e" (identifier "puVar15") (= "=") (pointer_expression "&DAT_0007148e" (& "&") (identifier "DAT_0007148e"))) (; ";")) (if_statement "if (local_38 == 0) {\n          puVar15 = &DAT_0006f2ee;\n        }" (if "if") (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          puVar15 = &DAT_0006f2ee;\n        }" ({ "{") (expression_statement "puVar15 = &DAT_0006f2ee;" (assignment_expression "puVar15 = &DAT_0006f2ee" (identifier "puVar15") (= "=") (pointer_expression "&DAT_0006f2ee" (& "&") (identifier "DAT_0006f2ee"))) (; ";")) (} "}"))) (labeled_statement "LAB_0002fa3b:\n        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" (statement_identifier "LAB_0002fa3b") (: ":") (expression_statement "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44);" (assignment_expression "uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" (identifier "uVar11") (= "=") (call_expression "FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" (identifier "FUN_0001d000") (argument_list "("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,\n                              local_44)" (( "(") (string_literal ""Using keyboard-interactive authentication.%s%.*s"" (" """) (string_content "Using keyboard-interactive authentication.%s%.*s") (" """)) (, ",") (identifier "puVar15") (, ",") (identifier "local_38") (, ",") (identifier "local_44") () ")")))) (; ";"))) (expression_statement "*(undefined4 *)(iVar7 + 0xc) = uVar11;" (assignment_expression "*(undefined4 *)(iVar7 + 0xc) = uVar11" (pointer_expression "*(undefined4 *)(iVar7 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "uVar11")) (; ";")) (expression_statement "iVar7 = piVar8[0xf];" (assignment_expression "iVar7 = piVar8[0xf]" (identifier "iVar7") (= "=") (subscript_expression "piVar8[0xf]" (identifier "piVar8") ([ "[") (number_literal "0xf") (] "]"))) (; ";")) (expression_statement "*(undefined4 *)(iVar7 + 0x10) = 1;" (assignment_expression "*(undefined4 *)(iVar7 + 0x10) = 1" (pointer_expression "*(undefined4 *)(iVar7 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar7 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0x10)" (( "(") (binary_expression "iVar7 + 0x10" (identifier "iVar7") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "iVar7 = FUN_000675f0(iVar7,0,0);" (assignment_expression "iVar7 = FUN_000675f0(iVar7,0,0)" (identifier "iVar7") (= "=") (call_expression "FUN_000675f0(iVar7,0,0)" (identifier "FUN_000675f0") (argument_list "(iVar7,0,0)" (( "(") (identifier "iVar7") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto LAB_0002f51a;" (goto "goto") (statement_identifier "LAB_0002f51a") (; ";")) (} "}"))) (labeled_statement "LAB_0002f35a:\n    *piVar8 = 0x28ca;" (statement_identifier "LAB_0002f35a") (: ":") (expression_statement "*piVar8 = 0x28ca;" (assignment_expression "*piVar8 = 0x28ca" (pointer_expression "*piVar8" (* "*") (identifier "piVar8")) (= "=") (number_literal "0x28ca")) (; ";"))) (} "}")))) (labeled_statement "LAB_0002d320:\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (statement_identifier "LAB_0002d320") (: ":") (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (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    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}")))) (expression_statement "FUN_0006dad0();" (call_expression "FUN_0006dad0()" (identifier "FUN_0006dad0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

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

void __regparm3 function_1(type_1 ssh,type_2 *in,int var_91,type_3 *var_67)

{
  type_4 *ch;
  void **ppvVar1;
  int var_106;
  char var_78;
  type_2 var_82;
  type_5 *pCVar5;
  type_6 *pcVar6;
  type_7 var_35;
  size_t var_31;
  size_t var_75;
  int var_37;
  type_3 *pPVar11;
  int *var_2;
  type_8 *ptVar13;
  type_9 *pFVar14;
  type_2 *var_16;
  type_2 *sigblob_v;
  type_10 *psVar16;
  type_11 **pppVar17;
  type_12 *ppVar18;
  char *var_30;
  int var_4;
  type_13 var_101;
  type_7 var_29;
  type_14 *puVar23;
  void *pvVar24;
  type_15 *var_26;
  type_16 *puVar26;
  type_17 *var_59;
  type_18 *pXVar28;
  type_19 *var_85;
  int var_36;
  int padsize;
  int padsize_00;
  int extraout_ECX;
  int extraout_ECX_00;
  type_7 *extraout_EDX;
  type_7 *puVar31;
  type_20 extraout_EDX_00;
  type_21 *var_88;
  int var_34;
  type_7 *puVar34;
  char *var_80;
  type_7 *var_33;
  int var_1;
  type_22 *var_66;
  char **local_60;
  int var_96;
  char *name;
  char *inst;
  char *lang;
  int var_99;
  int var_100;
  int var_69;
  char *var_70;
  char *var_27;
  char *local_28;
  type_2 x [4];
  
  var_2 = (int *)ssh->do_ssh2_authconn_state;
  var_106 = *(int *)(var_1 + 0x14);
  if (var_2 == (int *)0x0) {
    var_2 = (int *)var_3(1,0xe8);
    ssh->do_ssh2_authconn_state = var_2;
    *var_2 = 0;
LAB_0002d8d0:
    var_4 = ssh->bare_connection;
    ssh->packet_dispatch[6] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x32] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x33] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x34] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x35] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x3c] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x3d] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x50] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x51] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x52] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5a] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5b] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5c] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5d] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5e] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x5f] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x60] = ssh2_msg_authconn;
    ssh->packet_dispatch[0x61] = ssh2_msg_authconn;
    var_2[2] = 0;
    var_2[0xe] = 0;
    var_2[0xd] = 0;
    var_2[0x1c] = 0;
    var_2[0xb] = 0;
    if (var_4 == 0) {
      var_4 = var_5(ssh->conf,0x23);
      if (var_4 == 0) {
        pPVar11 = var_6(5);
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,"ssh-userauth");
        var_8(ssh,(type_3 *)var_2[0x2e]);
LAB_0002fadd:
        *var_2 = 0x246f;
        goto LAB_0002d320;
      }
LAB_0002dbfb:
      if (var_2[2] == 0) {
        pPVar11 = var_6(5);
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,"ssh-connection");
        var_8(ssh,(type_3 *)var_2[0x2e]);
LAB_0002dc2e:
        *var_2 = 0x247a;
        goto LAB_0002d320;
      }
    }
    else {
LAB_0002d973:
      var_2[0xd] = 1;
    }
LAB_0002d97a:
    var_9(&ssh->banner);
    ssh->packet_dispatch[0x35] = ssh2_msg_userauth_banner;
    var_2[0x14] = 0;
    if (var_2[0xd] == 0) {
      pFVar14 = var_10(ssh->conf,0x20);
      var_2[0x2f] = (int)pFVar14;
      var_4 = var_11(pFVar14);
      if (var_4 == 0) {
        var_30 = var_12((type_9 *)var_2[0x2f]);
        var_13(ssh,"Reading key file \"%.150s\"",var_30);
        var_4 = var_14((type_9 *)var_2[0x2f]);
        if ((var_4 == 9) || (var_4 == 3)) {
          var_16 = var_15
                              ((type_9 *)var_2[0x2f],(char **)(var_2 + 0x18),var_2 + 0x15,
                               (char **)(var_2 + 0x19),&var_27);
          var_2[0x14] = (int)var_16;
          if (var_16 != (type_2 *)0x0) {
            var_2[0x16] = (type_7)(var_4 == 3);
            if (var_4 != 3) goto LAB_0002fb9e;
            goto LAB_0002fbb1;
          }
LAB_00030219:
          var_13(ssh,"Unable to load key (%s)",var_27);
          var_30 = var_27;
          var_80 = var_12((type_9 *)var_2[0x2f]);
          var_30 = var_17("Unable to load key file \"%.150s\" (%s)\r\n",var_80,var_30);
          var_31 = var_18(var_30);
          var_19((type_1)&ssh->frontend,var_30,var_31);
          var_20(var_30);
        }
        else if (var_4 == 10) {
          var_16 = var_15
                              ((type_9 *)var_2[0x2f],(char **)(var_2 + 0x18),var_2 + 0x15,
                               (char **)(var_2 + 0x19),&var_27);
          var_2[0x14] = (int)var_16;
          if (var_16 == (type_2 *)0x0) goto LAB_00030219;
          var_2[0x16] = 0;
LAB_0002fb9e:
          var_13(ssh,"Key file contains public key only",var_30);
LAB_0002fbb1:
          var_4 = var_21((type_9 *)var_2[0x2f],(char **)0x0);
          var_2[0x17] = var_4;
        }
        else {
          var_30 = var_22(var_4);
          var_13(ssh,"Unable to use this key file (%s)",var_30);
          var_30 = var_22(var_4);
          var_80 = var_12((type_9 *)var_2[0x2f]);
          var_30 = var_17("Unable to use key file \"%.150s\" (%s)\r\n",var_80,var_30);
          var_31 = var_18(var_30);
          var_19((type_1)&ssh->frontend,var_30,var_31);
          var_20(var_30);
          var_2[0x14] = 0;
        }
      }
      var_2[0x1c] = 0;
      var_2[0x21] = 0;
      var_2[0x1f] = 0;
      var_4 = var_5(ssh->conf,0x1c);
      if ((var_4 != 0) && (var_4 = var_23(), var_4 != 0)) {
        var_24(ssh->frontend,"Pageant is running. Requesting keys.");
        var_2[0x1a] = 0x1000000;
        *(type_14 *)(var_2 + 0x1b) = 0xb;
        var_26 = var_25(var_2 + 0x1a,5,&var_27,var_2 + 0x1e,ssh_agent_callback,ssh);
        ssh->auth_agent_query = var_26;
        if (var_26 != (type_15 *)0x0) {
LAB_0002eb58:
          *var_2 = 0x24d9;
          goto LAB_0002d320;
        }
LAB_0002d78a:
        var_30 = var_27;
        var_2[0x1c] = (int)var_27;
        if (((var_27 == (char *)0x0) || (var_2[0x1e] < 5)) || (var_27[4] != '\f')) {
          var_24(ssh->frontend,"Failed to get reply from Pageant");
        }
        else {
          var_29 = *(type_7 *)(var_27 + 5);
          var_4 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                         var_29 << 0x18);
          var_2[0x21] = var_4;
          if (var_4 < 0) {
            var_30 = "Pageant response contained a negative key count %d";
          }
          else {
            var_33 = (type_7 *)(var_30 + 9);
            var_34 = var_2[0x1e] + -9;
            puVar31 = var_33;
            if (var_4 == 0) {
LAB_00030479:
              var_13(ssh,"Pageant has %d SSH-2 keys",var_4,puVar31);
              if (var_2[0x14] != 0) {
                if (0 < var_2[0x21]) {
                  var_4 = 0;
                  do {
                    var_29 = *var_33;
                    var_31 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8
                                  | var_29 << 0x18);
                    var_2[0x25] = var_31;
                    if ((var_31 == var_2[0x15]) &&
                       (var_34 = var_32(var_33 + 1,(void *)var_2[0x14],var_31), var_34 == 0)) {
                      var_13(ssh,"Pageant key #%d matches configured key file",var_4,0);
                      var_2[0x20] = var_4;
                      var_2[0x1f] = (int)var_33;
                      goto LAB_0002d7b9;
                    }
                    var_33 = (type_7 *)((int)var_33 + var_31 + 4);
                    var_4 = var_4 + 1;
                    var_29 = *var_33;
                    var_34 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 |
                                   (var_29 & 0xff00) << 8 | var_29 << 0x18);
                    var_33 = (type_7 *)((int)var_33 + var_34 + 4);
                  } while (var_4 < var_2[0x21]);
                }
                if (var_2[0x1f] == 0) {
                  var_24(ssh->frontend,"Configured key file not in Pageant");
                  var_2[0x21] = 0;
                }
              }
              goto LAB_0002d7b9;
            }
            var_37 = 0;
            puVar34 = var_33;
            if (3 < var_34) {
              while( true ) {
                var_29 = *puVar34;
                var_29 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                               var_29 << 0x18);
                if (var_34 - 4U < var_29) break;
                puVar34 = (type_7 *)((int)puVar34 + var_29 + 4);
                var_35 = *puVar34;
                var_34 = ((var_34 - 4U) - var_29) + -4;
                var_36 = var_28(var_35 >> 0x18 | (var_35 & 0xff0000) >> 8 | (var_35 & 0xff00) << 8 |
                               var_35 << 0x18);
                if ((var_36 < 0) || (var_34 < var_36)) break;
                var_34 = var_34 - var_36;
                var_37 = var_37 + 1;
                var_4 = var_2[0x21];
                puVar31 = extraout_EDX;
                if (var_4 <= var_37) goto LAB_00030479;
                puVar34 = (type_7 *)((int)puVar34 + var_36 + 4);
                if (var_34 < 4) break;
              }
            }
            var_30 = "Pageant response was truncated";
          }
          var_13(ssh,var_30);
          var_2[0x21] = 0;
        }
      }
LAB_0002d7b9:
      var_2[0x13] = 0;
      if (var_2[0xd] == 0) {
LAB_0002d7cb:
        var_30 = var_38(ssh->conf);
        ssh->username = var_30;
        if (var_30 == (char *)0x0) {
          ppVar18 = var_39(ssh->frontend);
          var_2[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          var_30 = var_40("SSH login name");
          ppVar18->name = var_30;
          var_30 = var_40("login as: ");
          var_41((type_12 *)var_2[0xf],var_30,1);
          var_4 = var_42((type_12 *)var_2[0xf],(type_2 *)0x0,0);
LAB_0002f3ea:
          if (var_4 < 0) {
            ssh->send_ok = 1;
            goto LAB_0002e8c8;
          }
          if (var_4 == 0) {
            var_43((type_12 *)var_2[0xf]);
            var_44(ssh,"No username provided",(char *)0x0,0,1);
            *var_2 = 0;
            goto LAB_0002d320;
          }
          var_30 = var_40((*((type_12 *)var_2[0xf])->prompts)->result);
          ssh->username = var_30;
          var_43((type_12 *)var_2[0xf]);
        }
        else if (((type_23)flags & 5) != 0) {
          var_30 = var_17("Using username \"%s\".\r\n",var_30);
          var_31 = var_18(var_30);
          var_19((type_1)&ssh->frontend,var_30,var_31);
          var_20(var_30);
        }
LAB_0002d7f9:
        var_2[0x13] = 1;
        ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;
        pPVar11 = var_6(0x32);
        var_30 = ssh->username;
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,var_30);
        var_7((type_3 *)var_2[0x2e],"ssh-connection");
        var_7((type_3 *)var_2[0x2e],"none");
        var_8(ssh,(type_3 *)var_2[0x2e]);
        var_2[1] = 0;
        var_2[3] = 0;
        var_2[0xd] = 0;
        var_2[8] = 0;
        var_2[0xc] = 0;
        var_2[9] = 0;
        if (var_2[0x1c] != 0) {
          if (var_2[0x1f] == 0) {
            var_2[0x20] = 0;
            var_2[0x1d] = var_2[0x1c] + 9;
          }
          else {
            var_2[0x1d] = var_2[0x1f];
          }
        }
LAB_0002d310:
        *var_2 = 0x25a0;
        goto LAB_0002d320;
      }
    }
    else {
      var_2[0x13] = 0;
    }
LAB_0002d9b1:
    ssh->packet_dispatch[0x35] = (type_24)0x0;
    if (var_2[0x14] != 0) {
      var_20((void *)var_2[0x18]);
      var_20((void *)var_2[0x14]);
      var_20((void *)var_2[0x19]);
    }
    if ((void *)var_2[0x1c] != (void *)0x0) {
      var_20((void *)var_2[0x1c]);
    }
    if ((var_2[0xe] != 0) && (ssh->bare_connection == 0)) {
      var_45(ssh,"enabling delayed compression",-2,(type_3 *)0x0);
    }
    ptVar13 = var_46(ssh_channelcmp);
    ssh->channels = ptVar13;
    ssh->packet_dispatch[0x5d] = ssh2_msg_channel_window_adjust;
    ssh->packet_dispatch[0x50] = ssh2_msg_global_request;
    var_4 = var_5(ssh->conf,0x2d);
    if (var_4 == 0) {
      psVar16 = (type_10 *)var_3(1,0x5c);
      ssh->mainchan = psVar16;
      psVar16->ssh = ssh;
      var_47(psVar16);
      var_30 = var_48(ssh->conf,0x2e);
      if (*var_30 == '\0') {
        pPVar11 = var_49((type_10 *)&ssh->mainchan->localid,
                                     (char *)&(ssh->mainchan->v).v2.locwindow,(type_10 *)0x71f45
                                    );
        var_2[0x2e] = (int)pPVar11;
        var_24(ssh->frontend,"Opening session as main channel");
        var_8(ssh,(type_3 *)var_2[0x2e]);
        ssh->ncmode = 0;
      }
      else {
        var_4 = var_5(ssh->conf,0x2f);
        var_30 = var_48(ssh->conf,0x2e);
        var_50(ssh->mainchan,var_30,var_4,"main channel");
        ssh->ncmode = 1;
      }
LAB_0002e0c6:
      *var_2 = 0x2a03;
      goto LAB_0002d320;
    }
    ssh->mainchan = (type_10 *)0x0;
LAB_0002da71:
    ssh->packet_dispatch[0x5f] = ssh2_msg_channel_data;
    ssh->packet_dispatch[0x5e] = ssh2_msg_channel_data;
    ssh->packet_dispatch[0x60] = ssh2_msg_channel_eof;
    ssh->packet_dispatch[0x61] = ssh2_msg_channel_close;
    ssh->packet_dispatch[0x5b] = ssh2_msg_channel_open_confirmation;
    ssh->packet_dispatch[0x5c] = ssh2_msg_channel_open_failure;
    ssh->packet_dispatch[0x62] = ssh2_msg_channel_request;
    ssh->packet_dispatch[0x5a] = ssh2_msg_channel_open;
    ssh->packet_dispatch[99] = ssh2_msg_channel_response;
    ssh->packet_dispatch[100] = ssh2_msg_channel_response;
    if (ssh->connshare != (void *)0x0) {
      var_51(ssh->connshare,ssh->v_s);
    }
    if ((ssh->mainchan != (type_10 *)0x0) && (var_4 = var_52(ssh), var_4 != 0)) {
      pPVar11 = var_53(ssh->mainchan,"simple@putty.projects.tartarus.org",
                                  (type_25)0x0,(void *)0x0);
      var_2[0x2e] = (int)pPVar11;
      var_8(ssh,pPVar11);
    }
    var_54(ssh,ssh->conf);
    if ((ssh->mainchan == (type_10 *)0x0) || (ssh->ncmode != 0)) {
      ssh->echoing = 1;
      ssh->editing = 1;
LAB_0002db48:
      ssh->state = ADDRTYPE_NAME;
      if (ssh->size_needed != 0) {
        var_55(ssh,ssh->term_width,ssh->term_height);
      }
      if (ssh->eof_needed != 0) {
        var_56(ssh,TS_EOF);
      }
      if (ssh->ldisc != (void *)0x0) {
        var_57(ssh->ldisc);
      }
      if (ssh->mainchan != (type_10 *)0x0) {
        ssh->send_ok = 1;
      }
LAB_0002db95:
      *var_2 = 0x2abd;
      goto LAB_0002d320;
    }
    var_4 = var_5(ssh->conf,0x95);
    if (var_4 != 0) {
      pCVar5 = ssh->conf;
      var_30 = var_48(pCVar5,0x96);
      var_59 = var_58(var_30,pCVar5);
      ssh->x11disp = var_59;
      if (var_59 == (type_17 *)0x0) {
        var_24(ssh->frontend,"X11 forwarding not enabled: unable to initialise X display");
      }
      else {
        var_4 = var_5(ssh->conf,0x97);
        pXVar28 = var_60(ssh->x11authtree,var_4);
        ssh->x11auth = pXVar28;
        pXVar28->disp = ssh->x11disp;
        var_61(ssh->mainchan,(type_3 *)0x0,(void *)0x0);
      }
    }
    var_4 = var_62(ssh);
    if (var_4 != 0) {
      var_63(ssh->mainchan,(type_3 *)0x0,(void *)0x0);
    }
    var_4 = var_5(ssh->conf,0x16);
    if (var_4 == 0) {
      var_64(ssh->mainchan,(type_3 *)0x0,(void *)0x0);
    }
    var_65(ssh->mainchan,(type_3 *)0x0,(void *)0x0);
    if (ssh->fallback_cmd == 0) {
      var_66 = (type_22 *)var_5(ssh->conf,0x2b);
      var_4 = 0x14;
    }
    else {
LAB_0002feab:
      var_66 = (type_22 *)var_5(ssh->conf,0x2c);
      var_4 = 0x15;
    }
    var_30 = var_48(ssh->conf,var_4);
    if (var_66 == (type_22 *)0x0) {
      if (*var_30 != '\0') {
        var_80 = "exec";
        goto LAB_0002f28b;
      }
      pPVar11 = var_53(ssh->mainchan,"shell",ssh2_response_authconn,(void *)0x0);
      var_2[0x2e] = (int)pPVar11;
    }
    else {
      var_80 = "subsystem";
LAB_0002f28b:
      pPVar11 = var_53(ssh->mainchan,var_80,ssh2_response_authconn,(void *)0x0);
      var_2[0x2e] = (int)pPVar11;
      var_7(pPVar11,var_30);
      pPVar11 = (type_3 *)var_2[0x2e];
    }
    var_8(ssh,pPVar11);
  }
  else {
    var_4 = *var_2;
    if (var_4 == 0x27b6) {
      if (var_67 == (type_3 *)0x0) {
LAB_0002d664:
        *var_2 = 0x27b6;
        goto LAB_0002d320;
      }
      if (var_67->type == 0x3c) {
        var_68(var_67,&var_70,&var_69);
        var_2[0x34] = var_69;
        var_31 = var_2[0x32];
        var_2[0x35] = (int)var_70;
        if ((((var_69 == var_31 + 2) && (*var_70 == '\x06')) && (var_31 == (int)var_70[1])) &&
           (var_4 = var_32(var_70 + 2,(void *)var_2[0x33],var_31), var_4 == 0)) {
          var_4 = (**(type_6 **)(var_2[0x30] + 0xc))
                             (var_2[0x30],ssh->fullhostname,var_2 + 0x38);
          var_2[0x39] = var_4;
          if (var_4 == 0) {
            var_4 = (**(type_6 **)(var_2[0x30] + 0x1c))(var_2[0x30],var_2 + 0x31);
            var_2[0x39] = var_4;
            if (var_4 == 0) {
              var_2[0x34] = 0;
              var_2[0x35] = 0;
              var_2[0x36] = 0;
              var_2[0x37] = 0;
LAB_0002efad:
              var_66 = (type_22 *)(var_2 + 0x31);
              pcVar6 = *(type_6 **)(var_2[0x30] + 0x14);
              var_4 = var_5(ssh->conf,0x28);
              var_29 = (*pcVar6)(var_2[0x30],var_66,var_2[0x38],var_4,var_2 + 0x34,
                                 var_2 + 0x36);
              var_2[0x39] = var_29;
              if (var_29 < 2) {
                var_24(ssh->frontend,"GSSAPI authentication initialised");
                if (var_2[0x36] != 0) {
                  pPVar11 = var_6(0x3d);
                  var_2[0x2e] = (int)pPVar11;
                  x[0] = '\0';
                  x[1] = '\0';
                  x[2] = '\0';
                  x[3] = '\0';
                  var_71(pPVar11,x,4);
                  var_30 = (char *)var_2[0x37];
                  pPVar11->savedpos = pPVar11->length;
                  var_72((type_3 *)var_2[0x2e],var_30,var_2[0x36]);
                  var_8(ssh,(type_3 *)var_2[0x2e]);
                  (**(type_6 **)(var_2[0x30] + 0x18))
                            (var_2[0x30],var_2 + 0x36,extraout_EDX_00,extraout_EDX_00);
                }
                var_4 = var_2[0x39];
                if (var_4 == 1) {
LAB_0002fcf7:
                  *var_2 = 0x2807;
                  goto LAB_0002d320;
                }
              }
              else {
                var_24(ssh->frontend,"GSSAPI authentication initialisation failed");
                var_4 = (**(type_6 **)(var_2[0x30] + 0x2c))
                                   (var_2[0x30],var_2[0x31],var_2 + 0x32,var_29);
                if (var_4 == 0) {
                  var_24(ssh->frontend,(char *)var_2[0x33]);
                  var_20((void *)var_2[0x33]);
                  var_4 = var_2[0x39];
                }
                else {
                  var_4 = var_2[0x39];
                }
              }
LAB_0002f049:
              if (var_4 == 0) {
                var_24(ssh->frontend,"GSSAPI authentication loop finished OK");
                pPVar11 = var_6(0);
                var_4 = pPVar11->length;
                var_2[0x2e] = (int)pPVar11;
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                var_71(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                var_72
                          ((type_3 *)var_2[0x2e],(char *)ssh->v2_session_id,ssh->v2_session_id_len
                          );
                var_27 = (char *)var_73(var_27._1_3_,0x32);
                var_71((type_3 *)var_2[0x2e],&var_27,1);
                var_7((type_3 *)var_2[0x2e],ssh->username);
                var_7((type_3 *)var_2[0x2e],"ssh-connection");
                var_7((type_3 *)var_2[0x2e],"gssapi-with-mic");
                var_34 = ((int *)var_2[0x2e])[4];
                var_2[0x32] = *(int *)var_2[0x2e] - var_4;
                var_2[0x33] = var_34 + var_4;
                (**(type_6 **)(var_2[0x30] + 0x24))
                          (var_2[0x30],var_2[0x31],var_2 + 0x32,&var_27);
                pPVar11 = var_6(0x42);
                var_2[0x2e] = (int)pPVar11;
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                var_71(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                var_72((type_3 *)var_2[0x2e],local_28,(int)var_27);
                var_8(ssh,(type_3 *)var_2[0x2e]);
                (**(type_6 **)(var_2[0x30] + 0x28))(var_2[0x30],&var_27);
                var_2[3] = 0;
                var_4 = var_2[0x30];
              }
              else {
LAB_0002e970:
                var_4 = var_2[0x30];
              }
              local_60 = (char **)(var_2 + 0x38);
              var_66 = (type_22 *)(var_2 + 0x31);
              (**(type_6 **)(var_4 + 0x10))(var_4,local_60);
              (**(type_6 **)(var_2[0x30] + 0x20))(var_2[0x30],var_66);
            }
            else {
              var_34 = var_4;
              var_24(ssh->frontend,"GSSAPI authentication failed to get credentials");
              (**(type_6 **)(var_2[0x30] + 0x10))(var_2[0x30],var_2 + 0x38,var_4,var_34);
            }
          }
          else if (var_4 == 3) {
            var_24(ssh->frontend,"GSSAPI import name failed - Bad service name");
          }
          else {
            var_24(ssh->frontend,"GSSAPI import name failed");
          }
        }
        else {
          var_24(ssh->frontend,"GSSAPI authentication - wrong response from server");
        }
      }
      else {
        var_24(ssh->frontend,"GSSAPI authentication request refused");
      }
      var_4 = var_2[3];
LAB_0002d2f8:
      var_70 = (char *)0x0;
      var_27 = (char *)0x0;
      if (var_4 == 0) goto LAB_0002d310;
LAB_0002d3e0:
      ch = &ssh->banner;
      var_75 = var_74(ch);
      if ((var_75 != 0) && (((type_23)flags & 5) != 0)) {
        var_30 = (char *)var_3(var_75,1);
        var_76(ch,var_30,var_75);
        puVar26 = PTR_stderr_000a4fa0;
        if (((type_23)flags & 2) == 0) {
          var_77(ssh->frontend,var_30,var_75);
        }
        else {
          var_80 = var_30;
          if (0 < (int)var_75) {
            do {
              var_78 = *var_80;
              if ((var_78 != '\r') && ((var_78 == '\n' || (((int)var_78 & 0x60U) != 0)))) {
                var_79((int)var_78,*(type_26 **)puVar26);
              }
              var_80 = var_80 + 1;
            } while (var_80 != var_30 + var_75);
          }
        }
        var_20(var_30);
      }
      var_81(ch);
      if (var_67->type == 0x34) {
        var_24(ssh->frontend,"Access granted");
        var_2[0xe] = 1;
        var_2[0xd] = 1;
        goto LAB_0002d9b1;
      }
      if (var_67->type == 0x33) {
        var_2[3] = 0;
        var_68(var_67,&var_70,(int *)&var_27);
        var_4 = var_67->savedpos;
        if ((var_67->length == var_4 || var_67->length - var_4 < 0) ||
           (var_82 = var_67->body[var_4], var_67->savedpos = var_4 + 1, var_82 == '\0')) {
          var_4 = var_2[1];
          if (var_4 != 0) {
            if (var_4 - 2U < 2) {
              if (var_4 == 2) {
                var_19((type_1)&ssh->frontend,"Server refused our key\r\n",0x18);
              }
              var_24(ssh->frontend,"Server refused our key");
            }
            else if (var_4 == 1) {
              var_19((type_1)&ssh->frontend,
                      "Server refused public-key signature despite accepting key!\r\n",0x3c);
              var_24(ssh->frontend,"Server refused public-key signature despite accepting key!");
            }
            else if (var_4 == 7) {
              var_24(ssh->frontend,"Server refused keyboard-interactive authentication");
            }
            else if (var_4 != 5) {
              if (var_4 == 6) {
                var_24(ssh->frontend,"Keyboard-interactive authentication failed");
                var_19((type_1)&ssh->frontend,"Access denied\r\n",0xf);
              }
              else {
                if (var_4 != 4) {
                    /* WARNING: Subroutine does not return */
                  var_83("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");
                }
                var_24(ssh->frontend,"Password authentication failed");
                var_19((type_1)&ssh->frontend,"Access denied\r\n",0xf);
                var_4 = var_5(ssh->conf,0x1e);
                if (var_4 != 0) {
                  pCVar5 = ssh->conf;
                  var_2[0xd] = 0;
                  if ((var_2[0x13] == 0) || (var_4 = var_5(pCVar5,0x1e), var_4 != 0))
                  goto LAB_0002d7cb;
                  goto LAB_0002d7f9;
                }
              }
            }
          }
        }
        else {
          var_19((type_1)&ssh->frontend,"Further authentication required\r\n",0x21);
          var_24(ssh->frontend,"Further authentication required");
        }
        var_80 = var_27;
        var_30 = var_70;
        var_4 = var_84("publickey",var_70,(int)var_27);
        var_2[5] = var_4;
        var_4 = var_84("password",var_30,(int)var_80);
        var_2[6] = var_4;
        var_29 = var_5(ssh->conf,0x26);
        if (var_29 != 0) {
          var_4 = var_84("keyboard-interactive",var_70,(int)var_27);
          var_29 = (type_7)(var_4 != 0);
        }
        var_2[7] = var_29;
        var_4 = var_5(ssh->conf,0x27);
        if ((var_4 == 0) ||
           (var_4 = var_84("gssapi-with-mic",var_70,(int)var_27), var_4 == 0)) {
          var_2[10] = 0;
        }
        else {
          var_85 = ssh->gsslibs;
          if (var_85 == (type_19 *)0x0) {
            var_85 = var_86(ssh->conf);
            ssh->gsslibs = var_85;
          }
          var_2[10] = (type_7)(0 < var_85->nlibraries);
        }
      }
      else {
        if (var_2[1] != 5) {
          var_30 = "Strange packet received during authentication: type %d";
          goto LAB_0002dba9;
        }
        var_2[3] = 0;
      }
      ssh->pkt_actx = SSH2_PKTCTX_NOAUTH;
      if (var_2[5] != 0) {
        if ((var_2[9] == 0) && (var_2[0x21] != 0)) {
          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;
          var_13(ssh,"Trying Pageant key #%d",var_2[0x20]);
          var_29 = *(type_7 *)var_2[0x1d];
          var_37 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                         var_29 << 0x18);
          var_34 = var_2[0x1d];
          var_2[0x25] = var_37;
          var_4 = var_34 + 4;
          var_2[0x22] = var_4;
          var_2[0x1d] = var_4 + var_37;
          var_29 = *(type_7 *)(var_34 + 4);
          var_4 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                         var_29 << 0x18);
          var_2[0x26] = var_4;
          var_2[0x23] = var_2[0x22] + 4;
          var_29 = *(type_7 *)var_2[0x1d];
          var_4 = var_28(var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                         var_29 << 0x18);
          var_2[0x27] = var_4;
          var_2[0x24] = var_2[0x1d] + 4;
          var_2[0x1d] = var_2[0x1d] + 4 + var_4;
          pPVar11 = var_6(0x32);
          var_30 = ssh->username;
          var_2[0x2e] = (int)pPVar11;
          var_7(pPVar11,var_30);
          var_7((type_3 *)var_2[0x2e],"ssh-connection");
          var_7((type_3 *)var_2[0x2e],"publickey");
          var_69 = var_69 & 0xffffff00;
          var_71((type_3 *)var_2[0x2e],&var_69,1);
          pPVar11 = (type_3 *)var_2[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          var_71(pPVar11,x,4);
          var_4 = var_2[0x26];
          var_30 = (char *)var_2[0x23];
          pPVar11->savedpos = pPVar11->length;
          var_72((type_3 *)var_2[0x2e],var_30,var_4);
          pPVar11 = (type_3 *)var_2[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          var_71(pPVar11,x,4);
          var_4 = var_2[0x25];
          var_30 = (char *)var_2[0x22];
          pPVar11->savedpos = pPVar11->length;
          var_72((type_3 *)var_2[0x2e],var_30,var_4);
          var_8(ssh,(type_3 *)var_2[0x2e]);
          var_2[1] = 3;
          goto LAB_0002e2e0;
        }
        if (((var_2[0x14] != 0) && (var_2[0x16] != 0)) && (var_2[8] == 0)) {
          ssh->pkt_actx = SSH2_PKTCTX_PUBLICKEY;
          var_2[8] = 1;
          pPVar11 = var_6(0x32);
          var_30 = ssh->username;
          var_2[0x2e] = (int)pPVar11;
          var_7(pPVar11,var_30);
          var_7((type_3 *)var_2[0x2e],"ssh-connection");
          var_7((type_3 *)var_2[0x2e],"publickey");
          var_69 = var_69 & 0xffffff00;
          var_71((type_3 *)var_2[0x2e],&var_69,1);
          var_7((type_3 *)var_2[0x2e],(char *)var_2[0x18]);
          pPVar11 = (type_3 *)var_2[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          var_71(pPVar11,x,4);
          var_4 = var_2[0x15];
          var_30 = (char *)var_2[0x14];
          pPVar11->savedpos = pPVar11->length;
          var_72((type_3 *)var_2[0x2e],var_30,var_4);
          var_8(ssh,(type_3 *)var_2[0x2e]);
          var_24(ssh->frontend,"Offered public key");
LAB_0002f4f1:
          *var_2 = 0x26df;
          goto LAB_0002d320;
        }
      }
      if ((var_2[10] != 0) && (var_2[0xb] == 0)) {
        var_2[1] = 5;
        var_2[0xb] = 1;
        var_4 = ngsslibs;
        var_2[3] = 1;
        var_66 = (type_22 *)0x0;
        ssh->pkt_actx = SSH2_PKTCTX_GSSAPI;
        var_2[0x30] = 0;
        if (var_4 < 1) {
LAB_000301fa:
                    /* WARNING: Subroutine does not return */
          var_83("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");
        }
        do {
          var_37 = var_87(ssh->conf,0x29,(int)var_66);
          var_34 = ssh->gsslibs->nlibraries;
          if (0 < var_34) {
            var_88 = ssh->gsslibs->libraries;
            if (var_37 == var_88->id) {
LAB_0002ebb0:
              var_2[0x30] = (int)var_88;
              goto LAB_0002d550;
            }
            var_36 = 0;
            while( true ) {
              var_88 = var_88 + 1;
              var_36 = var_36 + 1;
              if (var_36 == var_34) break;
              if (var_88->id == var_37) goto LAB_0002ebb0;
            }
          }
          var_66 = (type_22 *)((int)var_66 + 1);
        } while ((type_22 *)var_4 != var_66);
        var_88 = (type_21 *)var_2[0x30];
LAB_0002d550:
        if (var_88 == (type_21 *)0x0) goto LAB_000301fa;
        if (var_88->gsslogmsg != (char *)0x0) {
          var_24(ssh->frontend,var_88->gsslogmsg);
        }
        pPVar11 = var_6(0x32);
        var_30 = ssh->username;
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,var_30);
        var_7((type_3 *)var_2[0x2e],"ssh-connection");
        var_7((type_3 *)var_2[0x2e],"gssapi-with-mic");
        var_24(ssh->frontend,"Attempting GSSAPI authentication");
        (**(type_6 **)(var_2[0x30] + 8))(var_2[0x30],var_2 + 0x32);
        x[0] = '\0';
        x[1] = '\0';
        x[2] = '\0';
        x[3] = '\x01';
        var_71((type_3 *)var_2[0x2e],x,4);
        var_89((type_3 *)var_2[0x2e],var_2[0x32] + 2);
        var_69 = var_73(var_69._1_3_,6);
        var_71((type_3 *)var_2[0x2e],&var_69,1);
        var_69 = var_73(var_69._1_3_,(char)var_2[0x32]);
        var_71((type_3 *)var_2[0x2e],&var_69,1);
        var_71((type_3 *)var_2[0x2e],(void *)var_2[0x33],var_2[0x32]);
        var_8(ssh,(type_3 *)var_2[0x2e]);
        goto LAB_0002d664;
      }
      if ((var_2[7] != 0) && (var_2[0xc] == 0)) {
        var_2[1] = 6;
        ssh->pkt_actx = SSH2_PKTCTX_KBDINTER;
        pPVar11 = var_6(0x32);
        var_30 = ssh->username;
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,var_30);
        var_7((type_3 *)var_2[0x2e],"ssh-connection");
        var_7((type_3 *)var_2[0x2e],"keyboard-interactive");
        var_7((type_3 *)var_2[0x2e],"");
        var_7((type_3 *)var_2[0x2e],"");
        var_8(ssh,(type_3 *)var_2[0x2e]);
        var_24(ssh->frontend,"Attempting keyboard-interactive authentication");
LAB_0002e166:
        *var_2 = 0x284b;
        goto LAB_0002d320;
      }
      if (var_2[6] == 0) {
        var_30 = var_17("No supported authentication methods available (server sent: %.*s)",
                            var_27,var_70);
        var_44(ssh,var_30,"No supported authentication methods available",0xe,0);
        var_20(var_30);
        *var_2 = 0;
        goto LAB_0002d320;
      }
      ssh->pkt_actx = SSH2_PKTCTX_PASSWORD;
      ppVar18 = var_39(ssh->frontend);
      var_2[0xf] = (int)ppVar18;
      ppVar18->to_server = 1;
      var_30 = var_40("SSH password");
      ppVar18->name = var_30;
      var_30 = var_17("%s@%s\'s password: ",ssh->username,ssh->savedhost);
      var_41((type_12 *)var_2[0xf],var_30,0);
      var_4 = var_42((type_12 *)var_2[0xf],(type_2 *)0x0,0);
LAB_0002dc60:
      if (var_4 < 0) {
        ssh->send_ok = 1;
LAB_0002d68e:
        *var_2 = 0x28e8;
        goto LAB_0002d320;
      }
      ppVar18 = (type_12 *)var_2[0xf];
      if (var_4 != 0) {
        var_30 = var_40((*ppVar18->prompts)->result);
        var_2[0x12] = (int)var_30;
        var_43((type_12 *)var_2[0xf]);
        pPVar11 = var_6(0x32);
        var_30 = ssh->username;
        var_2[0x2e] = (int)pPVar11;
        var_7(pPVar11,var_30);
        var_7((type_3 *)var_2[0x2e],"ssh-connection");
        var_7((type_3 *)var_2[0x2e],"password");
        var_69 = var_69 & 0xffffff00;
        var_71((type_3 *)var_2[0x2e],&var_69,1);
        var_7((type_3 *)var_2[0x2e],(char *)var_2[0x12]);
        var_90(ssh,(type_3 *)var_2[0x2e],padsize);
        var_24(ssh->frontend,"Sent password");
        var_2[1] = 4;
        goto LAB_0002dd1c;
      }
LAB_0002ea6c:
      var_43(ppVar18);
LAB_0002ea71:
      var_44(ssh,(char *)0x0,"Unable to authenticate",0xd,1);
      *var_2 = 0;
      goto LAB_0002d320;
    }
    if (var_4 < 0x27b7) {
      if (var_4 == 0x2561) {
        if (var_67 == (type_3 *)0x0) {
          var_4 = var_42((type_12 *)var_2[0xf],in,var_91);
          ssh->send_ok = 0;
          goto LAB_0002f3ea;
        }
LAB_0002e8c8:
        *var_2 = 0x2561;
        goto LAB_0002d320;
      }
      if (var_4 < 0x2562) {
        if (var_4 == 0x246f) {
          if (var_67 == (type_3 *)0x0) goto LAB_0002fadd;
          if (var_67->type != 6) goto LAB_0002dbfb;
          var_2[2] = 1;
          goto LAB_0002d97a;
        }
        if (var_4 < 0x2470) {
          if (var_4 == 0) goto LAB_0002d8d0;
          goto LAB_0002d8a4;
        }
        if (var_4 == 0x247a) {
          if (var_67 != (type_3 *)0x0) {
            if (var_67->type != 6) {
              var_30 = "Server refused service request";
              goto LAB_0002dba9;
            }
            goto LAB_0002d973;
          }
          goto LAB_0002dc2e;
        }
        if (var_4 != 0x24d9) goto LAB_0002d8a4;
        if (var_67 != (type_3 *)0x0) goto LAB_0002dba0;
        if (0 < var_91) goto LAB_0002eb58;
        var_27 = (char *)ssh->agent_response;
        var_2[0x1e] = ssh->agent_response_len;
        goto LAB_0002d78a;
      }
      if (var_4 == 0x2696) {
        if (var_67 != (type_3 *)0x0) {
LAB_0002dba0:
          var_30 = "Unexpected data from server while waiting for agent response";
          goto LAB_0002dba9;
        }
        if (0 < var_91) {
LAB_0002f388:
          *var_2 = 0x2696;
          goto LAB_0002d320;
        }
        var_27 = (char *)ssh->agent_response;
        var_2[0x29] = ssh->agent_response_len;
LAB_0002e806:
        var_2[0x2d] = (int)var_27;
        var_20((void *)var_2[0x2c]);
        var_4 = var_2[0x2d];
        if (var_4 != 0) {
          if (((var_2[0x29] < 9) || (*(char *)(var_4 + 4) != '\x0e')) ||
             (var_29 = *(type_7 *)(var_4 + 5),
             var_2[0x29] - 9U <
             (var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 | var_29 << 0x18)))
          {
            var_30 = "Pageant failed to answer challenge";
            goto LAB_0002dba9;
          }
          var_24(ssh->frontend,"Sending Pageant\'s response");
          var_29 = *(type_7 *)(var_2[0x2d] + 5);
          var_92((type_1)ssh->remote_bugs,(type_3 *)var_2[0x2e],
                           (void *)var_2[0x22],var_2[0x25],(void *)(var_2[0x2d] + 9),
                           var_29 >> 0x18 | (var_29 & 0xff0000) >> 8 | (var_29 & 0xff00) << 8 |
                           var_29 << 0x18);
          var_8(ssh,(type_3 *)var_2[0x2e]);
          var_2[1] = 1;
        }
LAB_0002d6ed:
        if (var_2[0x1f] == 0) {
          var_34 = var_2[0x20];
          var_4 = var_2[3];
          var_2[0x20] = var_34 + 1;
          if (var_2[0x21] <= var_34 + 1) {
            var_2[9] = 1;
          }
        }
        else {
          var_2[9] = 1;
          var_4 = var_2[3];
          var_2[8] = 1;
        }
        goto LAB_0002d2f8;
      }
      if (0x2696 < var_4) {
        if (var_4 != 0x26df) {
          if (var_4 == 0x2703) {
            if (var_67 == (type_3 *)0x0) {
              var_4 = var_42((type_12 *)var_2[0xf],in,var_91);
              ssh->send_ok = 0;
              goto LAB_0002dd4a;
            }
LAB_0002d72e:
            *var_2 = 0x2703;
            goto LAB_0002d320;
          }
          goto LAB_0002d8a4;
        }
        if (var_67 != (type_3 *)0x0) {
          if (var_67->type == 0x3c) {
            var_24(ssh->frontend,"Offer of public key accepted");
            if (((type_23)flags & 1) != 0) {
              ppvVar1 = &ssh->frontend;
              var_19((type_1)ppvVar1,"Authenticating with public key \"",0x20);
              var_30 = (char *)var_2[0x19];
              var_31 = var_18(var_30);
              var_19((type_1)ppvVar1,var_30,var_31);
              var_19((type_1)ppvVar1,"\"\r\n",3);
            }
            while (var_2[0x17] != 0) {
              ppVar18 = var_39(ssh->frontend);
              var_2[0xf] = (int)ppVar18;
              ppVar18->to_server = 0;
              var_30 = var_40("SSH key passphrase");
              ppVar18->name = var_30;
              var_30 = var_17("Passphrase for key \"%.100s\": ",var_2[0x19]);
              var_41((type_12 *)var_2[0xf],var_30,0);
              var_4 = var_42((type_12 *)var_2[0xf],(type_2 *)0x0,0);
LAB_0002dd4a:
              if (var_4 < 0) {
                ssh->send_ok = 1;
                goto LAB_0002d72e;
              }
              ppVar18 = (type_12 *)var_2[0xf];
              if (var_4 == 0) goto LAB_0002ea6c;
              var_30 = var_40((*ppVar18->prompts)->result);
              var_43((type_12 *)var_2[0xf]);
              pFVar14 = var_10(ssh->conf,0x20);
              var_2[0x2f] = (int)pFVar14;
              var_66 = var_93(pFVar14,var_30,&var_27);
              if (var_30 == (char *)0x0) {
                if (var_66 == (type_22 *)PTR_ssh2_wrong_passphrase_000a4fac)
                goto LAB_0002f5cf;
                goto LAB_0002ddec;
              }
              var_31 = var_18(var_30);
              var_94(var_30,var_31);
              var_20(var_30);
              if (var_66 != (type_22 *)PTR_ssh2_wrong_passphrase_000a4fac) goto LAB_0002ddec;
              var_19((type_1)&ssh->frontend,"Wrong passphrase\r\n",0x12);
            }
            pFVar14 = var_10(ssh->conf,0x20);
            var_2[0x2f] = (int)pFVar14;
            var_66 = var_93(pFVar14,(char *)0x0,&var_27);
            if (var_66 != (type_22 *)PTR_ssh2_wrong_passphrase_000a4fac) {
LAB_0002ddec:
              local_60 = &var_27;
              if (var_66 != (type_22 *)0x0) {
                pPVar11 = var_6(0x32);
                var_30 = ssh->username;
                var_2[0x2e] = (int)pPVar11;
                var_7(pPVar11,var_30);
                var_7((type_3 *)var_2[0x2e],"ssh-connection");
                var_7((type_3 *)var_2[0x2e],"publickey");
                var_27 = (char *)var_73(var_27._1_3_,1);
                var_71((type_3 *)var_2[0x2e],local_60,1);
                var_7((type_3 *)var_2[0x2e],var_66->alg->name);
                var_16 = (*var_66->alg->public_blob)(var_66->data,(int *)&var_70);
                pPVar11 = (type_3 *)var_2[0x2e];
                x[0] = '\0';
                x[1] = '\0';
                x[2] = '\0';
                x[3] = '\0';
                var_71(pPVar11,x,4);
                pPVar11->savedpos = pPVar11->length;
                var_72((type_3 *)var_2[0x2e],(char *)var_16,(int)var_70);
                var_75 = *(int *)var_2[0x2e] + -1 + ssh->v2_session_id_len;
                if ((ssh->remote_bugs & 0x80) != 0) {
                  var_75 = var_75 - 4;
                }
                var_30 = (char *)var_3(var_75,1);
                if ((ssh->remote_bugs & 0x80) == 0) {
                  var_96 = 4;
                  *var_30 = *(char *)((int)&ssh->v2_session_id_len + 3);
                  var_30[1] = (char)*(type_27 *)((int)&ssh->v2_session_id_len + 2);
                  var_30[2] = (char)((type_7)ssh->v2_session_id_len >> 8);
                  var_30[3] = (char)ssh->v2_session_id_len;
                  var_80 = var_30 + 4;
                }
                else {
                  var_96 = 0;
                  var_80 = var_30;
                }
                var_95(var_80,ssh->v2_session_id,ssh->v2_session_id_len);
                var_96 = var_96 + ssh->v2_session_id_len;
                var_95(var_30 + var_96,(void *)(((int *)var_2[0x2e])[4] + 5),
                       *(int *)var_2[0x2e] - 5);
                if (var_75 != var_96 + -5 + *(int *)var_2[0x2e]) {
                    /* WARNING: Subroutine does not return */
                  var_83("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");
                }
                sigblob_v = (*var_66->alg->sign)(var_66->data,var_30,var_75,(int *)local_60);
                var_92((type_1)ssh->remote_bugs,(type_3 *)var_2[0x2e],var_16,
                                 (int)var_70,sigblob_v,(int)var_27);
                var_20(var_16);
                var_20(sigblob_v);
                var_20(var_30);
                var_8(ssh,(type_3 *)var_2[0x2e]);
                var_24(ssh->frontend,"Sent public key signature");
                var_2[1] = 1;
                (*var_66->alg->freekey)(var_66->data);
                var_20(var_66->comment);
                var_20(var_66);
                var_4 = var_2[3];
                goto LAB_0002d2f8;
              }
            }
LAB_0002f5cf:
            ppvVar1 = &ssh->frontend;
            var_19((type_1)ppvVar1,"Unable to load private key (",0x1c);
            var_31 = var_18(var_27);
            var_19((type_1)ppvVar1,var_27,var_31);
            var_19((type_1)ppvVar1,")\r\n",3);
            var_4 = var_2[3];
            goto LAB_0002d2f8;
          }
          var_2[3] = 1;
          var_2[1] = 2;
          var_70 = (char *)0x0;
          var_27 = (char *)0x0;
          goto LAB_0002d3e0;
        }
        goto LAB_0002f4f1;
      }
      if (var_4 == 0x25a0) {
        if (var_67 != (type_3 *)0x0) goto LAB_0002d3e0;
        goto LAB_0002d310;
      }
      if (var_4 != 0x2650) goto LAB_0002d8a4;
      if (var_67 != (type_3 *)0x0) {
        if (var_67->type == 0x3c) {
          if (((type_23)flags & 1) != 0) {
            ppvVar1 = &ssh->frontend;
            var_19((type_1)ppvVar1,"Authenticating with public key \"",0x20);
            var_19((type_1)ppvVar1,(char *)var_2[0x24],var_2[0x27]);
            var_19((type_1)ppvVar1,"\" from agent\r\n",0xe);
          }
          pPVar11 = var_6(0x32);
          var_30 = ssh->username;
          var_2[0x2e] = (int)pPVar11;
          var_7(pPVar11,var_30);
          var_7((type_3 *)var_2[0x2e],"ssh-connection");
          var_7((type_3 *)var_2[0x2e],"publickey");
          var_27 = (char *)var_73(var_27._1_3_,1);
          var_71((type_3 *)var_2[0x2e],&var_27,1);
          pPVar11 = (type_3 *)var_2[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          var_71(pPVar11,x,4);
          var_30 = (char *)var_2[0x23];
          pPVar11->savedpos = pPVar11->length;
          var_72((type_3 *)var_2[0x2e],var_30,var_2[0x26]);
          pPVar11 = (type_3 *)var_2[0x2e];
          x[0] = '\0';
          x[1] = '\0';
          x[2] = '\0';
          x[3] = '\0';
          var_71(pPVar11,x,4);
          var_30 = (char *)var_2[0x22];
          pPVar11->savedpos = pPVar11->length;
          var_72((type_3 *)var_2[0x2e],var_30,var_2[0x25]);
          var_4 = *(int *)var_2[0x2e] + -1 + ssh->v2_session_id_len;
          var_2[0x28] = var_4;
          if ((ssh->remote_bugs & 0x80) == 0) {
            var_4 = var_4 + 4;
          }
          else {
            var_2[0x28] = var_4 + -4;
          }
          var_4 = var_4 + 5 + var_2[0x25];
          var_2[0x2a] = var_4 + 4;
          puVar23 = (type_14 *)var_3(var_4 + 8,1);
          var_2[0x2c] = (int)puVar23;
          *puVar23 = *(type_14 *)((int)var_2 + 0xab);
          *(char *)(var_2[0x2c] + 1) = (char)*(type_27 *)((int)var_2 + 0xaa);
          *(char *)(var_2[0x2c] + 2) = (char)((type_7)var_2[0x2a] >> 8);
          *(char *)(var_2[0x2c] + 3) = (char)var_2[0x2a];
          var_2[0x2b] = var_2[0x2c] + 5;
          *(type_14 *)(var_2[0x2c] + 4) = 0xd;
          *(type_14 *)var_2[0x2b] = *(type_14 *)((int)var_2 + 0x97);
          *(char *)(var_2[0x2b] + 1) = (char)*(type_27 *)((int)var_2 + 0x96);
          *(char *)(var_2[0x2b] + 2) = (char)((type_7)var_2[0x25] >> 8);
          *(char *)(var_2[0x2b] + 3) = (char)var_2[0x25];
          var_4 = var_2[0x2b];
          var_2[0x2b] = var_4 + 4;
          var_95((void *)(var_4 + 4),(void *)var_2[0x22],var_2[0x25]);
          var_4 = var_2[0x2b];
          var_2[0x2b] = var_2[0x25] + var_4;
          *(type_14 *)(var_2[0x25] + var_4) = *(type_14 *)((int)var_2 + 0xa3);
          *(char *)(var_2[0x2b] + 1) = (char)*(type_27 *)((int)var_2 + 0xa2);
          *(char *)(var_2[0x2b] + 2) = (char)((type_7)var_2[0x28] >> 8);
          *(char *)(var_2[0x2b] + 3) = (char)var_2[0x28];
          var_4 = var_2[0x2b];
          pvVar24 = (void *)(var_4 + 4);
          var_2[0x2b] = (int)pvVar24;
          if ((ssh->remote_bugs & 0x80) == 0) {
            *(type_14 *)(var_4 + 4) = *(type_14 *)((int)&ssh->v2_session_id_len + 3);
            *(char *)(var_2[0x2b] + 1) = (char)*(type_27 *)((int)&ssh->v2_session_id_len + 2);
            *(char *)(var_2[0x2b] + 2) = (char)((type_7)ssh->v2_session_id_len >> 8);
            *(char *)(var_2[0x2b] + 3) = (char)ssh->v2_session_id_len;
            pvVar24 = (void *)(var_2[0x2b] + 4);
            var_2[0x2b] = (int)pvVar24;
          }
          var_95(pvVar24,ssh->v2_session_id,ssh->v2_session_id_len);
          pvVar24 = (void *)(ssh->v2_session_id_len + var_2[0x2b]);
          var_4 = *(int *)var_2[0x2e];
          var_34 = ((int *)var_2[0x2e])[4];
          var_2[0x2b] = (int)pvVar24;
          var_95(pvVar24,(void *)(var_34 + 5),var_4 - 5);
          puVar23 = (type_14 *)(var_2[0x2b] + -5 + *(int *)var_2[0x2e]);
          var_2[0x2b] = (int)puVar23;
          *puVar23 = 0;
          *(type_14 *)(var_2[0x2b] + 1) = 0;
          *(type_14 *)(var_2[0x2b] + 2) = 0;
          *(type_14 *)(var_2[0x2b] + 3) = 0;
          var_26 = var_25((void *)var_2[0x2c],var_2[0x2a] + 4,&var_27,var_2 + 0x29,
                                ssh_agent_callback,ssh);
          ssh->auth_agent_query = var_26;
          if (var_26 != (type_15 *)0x0) goto LAB_0002f388;
          goto LAB_0002e806;
        }
        var_2[3] = 1;
        goto LAB_0002d6ed;
      }
LAB_0002e2e0:
      *var_2 = 0x2650;
      goto LAB_0002d320;
    }
    if (var_4 == 0x2917) {
      if (var_67 != (type_3 *)0x0) {
        var_4 = var_67->type;
        var_30 = "Server requested password change";
joined_r0x0002e302:
        if (var_4 == 0x3c) {
          var_24(ssh->frontend,var_30);
          var_31 = var_18(var_30);
          var_19((type_1)&ssh->frontend,var_30,var_31);
          var_19((type_1)&ssh->frontend,"\r\n",2);
          var_68(var_67,&var_70,(int *)&var_27);
          ppVar18 = var_39(ssh->frontend);
          var_2[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          var_30 = var_40("New SSH password");
          ppVar18->name = var_30;
          var_4 = var_2[0xf];
          var_30 = var_70;
          if (var_70 == (char *)0x0) {
            var_30 = "";
          }
          var_30 = var_17("%.*s",var_27,var_30);
          *(char **)(var_4 + 0xc) = var_30;
          *(type_20 *)(var_2[0xf] + 0x10) = 1;
          var_30 = var_40("Current password (blank for previously entered password): ");
          var_41((type_12 *)var_2[0xf],var_30,0);
          var_30 = var_40("Enter new password: ");
          var_41((type_12 *)var_2[0xf],var_30,0);
          var_30 = var_40("Confirm new password: ");
          var_41((type_12 *)var_2[0xf],var_30,0);
          while( true ) {
            var_4 = var_42((type_12 *)var_2[0xf],(type_2 *)0x0,0);
LAB_0002e42a:
            if (var_4 < 0) {
              ssh->send_ok = 1;
              goto LAB_0002e5f0;
            }
            if (var_4 == 0) {
              var_43((type_12 *)var_2[0xf]);
              var_30 = (char *)var_2[0x12];
              var_31 = var_18(var_30);
              var_94(var_30,var_31);
              var_20((void *)var_2[0x12]);
              goto LAB_0002ea71;
            }
            pppVar17 = ((type_12 *)var_2[0xf])->prompts;
            if (*(*pppVar17)->result != '\0') {
              var_30 = (char *)var_2[0x12];
              var_31 = var_18(var_30);
              var_94(var_30,var_31);
              var_20((void *)var_2[0x12]);
              var_30 = var_40(*(char **)(**(int **)(var_2[0xf] + 0x18) + 8));
              var_2[0x12] = (int)var_30;
              pppVar17 = *(type_11 ***)(var_2[0xf] + 0x18);
            }
            var_4 = var_97(pppVar17[1]->result,pppVar17[2]->result);
            if (var_4 == 0) break;
            var_19((type_1)&ssh->frontend,"Passwords do not match\r\n",0x18);
          }
          pPVar11 = var_6(0x32);
          var_30 = ssh->username;
          var_2[0x2e] = (int)pPVar11;
          var_7(pPVar11,var_30);
          var_7((type_3 *)var_2[0x2e],"ssh-connection");
          var_7((type_3 *)var_2[0x2e],"password");
          var_69 = var_73(var_69._1_3_,1);
          var_71((type_3 *)var_2[0x2e],&var_69,1);
          var_7((type_3 *)var_2[0x2e],(char *)var_2[0x12]);
          var_7((type_3 *)var_2[0x2e],
                            *(char **)(*(int *)(*(int *)(var_2[0xf] + 0x18) + 4) + 8));
          var_43((type_12 *)var_2[0xf]);
          var_90(ssh,(type_3 *)var_2[0x2e],padsize_00);
          var_24(ssh->frontend,"Sent new password");
LAB_0002e515:
          *var_2 = 0x2999;
          goto LAB_0002d320;
        }
        var_30 = (char *)var_2[0x12];
        var_2[3] = 1;
        var_31 = var_18(var_30);
        var_94(var_30,var_31);
        var_20((void *)var_2[0x12]);
        var_4 = var_2[3];
        goto LAB_0002d2f8;
      }
LAB_0002dd1c:
      *var_2 = 0x2917;
      goto LAB_0002d320;
    }
    if (var_4 < 0x2918) {
      if (var_4 == 0x28a4) {
        if (var_67 == (type_3 *)0x0) {
          var_4 = var_42((type_12 *)var_2[0xf],in,var_91);
          ssh->send_ok = 0;
LAB_0002f51a:
          if (-1 < var_4) {
            if (var_4 == 0) {
              ppVar18 = (type_12 *)var_2[0xf];
              goto LAB_0002ea6c;
            }
            var_34 = 0;
            pPVar11 = var_6(0x3d);
            var_2[0x2e] = (int)pPVar11;
            var_89(pPVar11,var_2[0x10]);
            var_4 = extraout_ECX;
            if (0 < var_2[0x10]) {
              do {
                var_4 = var_34 * 4;
                var_34 = var_34 + 1;
                var_7((type_3 *)var_2[0x2e],
                                  *(char **)(*(int *)(*(int *)(var_2[0xf] + 0x18) + var_4) + 8));
                var_4 = extraout_ECX_00;
              } while (var_34 < var_2[0x10]);
            }
            var_90(ssh,(type_3 *)var_2[0x2e],var_4);
            var_43((type_12 *)var_2[0xf]);
            goto LAB_0002f35a;
          }
          ssh->send_ok = 1;
        }
        *var_2 = 0x28a4;
      }
      else {
        if (var_4 < 0x28a5) {
          if (var_4 == 0x2807) {
            if (var_67 == (type_3 *)0x0) goto LAB_0002fcf7;
            if (var_67->type == 0x3d) {
              var_68(var_67,&var_70,&var_69);
              var_2[0x35] = (int)var_70;
              var_2[0x34] = var_69;
              var_4 = var_2[0x39];
              if (var_4 == 1) goto LAB_0002efad;
              goto LAB_0002f049;
            }
            var_24(ssh->frontend,"GSSAPI authentication - bad server response");
            var_2[0x39] = 4;
            goto LAB_0002e970;
          }
          if (var_4 != 0x284b) goto LAB_0002d8a4;
          if (var_67 != (type_3 *)0x0) {
            if (var_67->type == 0x3c) goto LAB_0002eda0;
            var_2[3] = 1;
            var_2[1] = 7;
            var_2[0xc] = 1;
            var_70 = (char *)0x0;
            var_27 = (char *)0x0;
            goto LAB_0002d3e0;
          }
          goto LAB_0002e166;
        }
        if (var_4 != 0x28ca) {
          if (var_4 != 0x28e8) goto LAB_0002d8a4;
          if (var_67 == (type_3 *)0x0) {
            var_4 = var_42((type_12 *)var_2[0xf],in,var_91);
            ssh->send_ok = 0;
            goto LAB_0002dc60;
          }
          goto LAB_0002d68e;
        }
        if (var_67 != (type_3 *)0x0) {
          if (var_67->type != 0x3c) {
            var_2[3] = 1;
            var_70 = (char *)0x0;
            var_27 = (char *)0x0;
            goto LAB_0002d3e0;
          }
LAB_0002eda0:
          var_68(var_67,&name,&var_99);
          var_68(var_67,&inst,&var_100);
          var_68(var_67,&lang,&var_69);
          ppVar18 = var_39(ssh->frontend);
          var_2[0xf] = (int)ppVar18;
          ppVar18->to_server = 1;
          var_101 = var_98(var_67);
          var_2[0x10] = var_101;
          if (0 < (int)var_101) {
            var_4 = 0;
            do {
              var_68(var_67,&var_70,(int *)&var_27);
              var_34 = var_67->savedpos;
              var_29 = 0;
              if (var_67->length != var_34 && -1 < var_67->length - var_34) {
                var_82 = var_67->body[var_34];
                var_67->savedpos = var_34 + 1;
                var_29 = (type_7)(var_82 != '\0');
              }
              if (var_27 == (char *)0x0) {
                var_70 = function_1::lexical_block_10::lexical_block_10_5::
                          lexical_block_10_5_6::lexical_block_10_5_6_7::noprompt;
                var_27 = (char *)0x20;
              }
              var_4 = var_4 + 1;
              var_30 = var_17("%.*s",var_27,var_70);
              var_41((type_12 *)var_2[0xf],var_30,var_29);
            } while (var_4 < var_2[0x10]);
          }
          var_4 = var_2[0xf];
          if (var_99 == 0) {
            var_30 = var_40("SSH server authentication");
            *(char **)(var_4 + 4) = var_30;
            ppVar18 = (type_12 *)var_2[0xf];
            ppVar18->name_reqd = 0;
          }
          else {
            var_30 = var_17("SSH server: %.*s",var_99,name);
            *(char **)(var_4 + 4) = var_30;
            ppVar18 = (type_12 *)var_2[0xf];
            ppVar18->name_reqd = 1;
          }
          if (var_2[0x10] == 0 && var_99 == 0) {
            if (var_100 != 0) {
              puVar26 = &DAT_0007148e;
              goto LAB_0002fa3b;
            }
            ppVar18->instr_reqd = 0;
          }
          else {
            puVar26 = &DAT_0007148e;
            if (var_100 == 0) {
              puVar26 = &DAT_0006f2ee;
            }
LAB_0002fa3b:
            var_30 = var_17("Using keyboard-interactive authentication.%s%.*s",puVar26,var_100,
                                inst);
            ppVar18->instruction = var_30;
            ppVar18 = (type_12 *)var_2[0xf];
            ppVar18->instr_reqd = 1;
          }
          var_4 = var_42(ppVar18,(type_2 *)0x0,0);
          goto LAB_0002f51a;
        }
LAB_0002f35a:
        *var_2 = 0x28ca;
      }
      goto LAB_0002d320;
    }
    if (var_4 == 0x2a03) {
      if (var_67 == (type_3 *)0x0) goto LAB_0002e0c6;
      if (var_67->type - 0x5bU < 2) {
        var_101 = var_98(var_67);
        psVar16 = ssh->mainchan;
        if (var_101 == psVar16->localid) {
          if (var_67->type == 0x5c) {
            var_30 = var_102(var_67);
            var_80 = var_17("Server refused to open main channel: %s",var_30);
            var_103(ssh,var_80);
            var_20(var_30);
            *var_2 = 0;
            goto LAB_0002d320;
          }
          var_101 = var_98(var_67);
          psVar16->remoteid = var_101;
          psVar16 = ssh->mainchan;
          psVar16->halfopen = 0;
          psVar16->type = 0;
          var_101 = var_98(var_67);
          (psVar16->v).v2.remwindow = var_101;
          psVar16 = ssh->mainchan;
          var_101 = var_98(var_67);
          (psVar16->v).v2.remmaxpkt = var_101;
          var_104(ssh->frontend);
          var_24(ssh->frontend,"Opened main channel");
          goto LAB_0002da71;
        }
        var_30 = "Server\'s response to main channel open cited wrong channel number";
      }
      else {
        var_30 = "Server sent strange packet %d in response to main channel open request";
      }
LAB_0002dba9:
      var_30 = var_17(var_30);
      var_103(ssh,var_30);
      *var_2 = 0;
      goto LAB_0002d320;
    }
    if (var_4 < 0x2a04) {
      if (var_4 == 0x2956) {
        if (var_67 == (type_3 *)0x0) {
          var_4 = var_42((type_12 *)var_2[0xf],in,var_91);
          ssh->send_ok = 0;
          goto LAB_0002e42a;
        }
LAB_0002e5f0:
        *var_2 = 0x2956;
        goto LAB_0002d320;
      }
      if (var_4 == 0x2999) {
        if (var_67 != (type_3 *)0x0) {
          var_4 = var_67->type;
          var_30 = "Server rejected new password";
          goto joined_r0x0002e302;
        }
        goto LAB_0002e515;
      }
LAB_0002d8a4:
      *var_2 = 0;
      goto LAB_0002d320;
    }
    if (var_4 != 0x2a90) {
      if (var_4 != 0x2abd) goto LAB_0002d8a4;
      if (var_67 != (type_3 *)0x0) {
        var_30 = "Strange packet received: type %d";
        goto LAB_0002dba9;
      }
      if (ssh->mainchan != (type_10 *)0x0) {
        var_105(ssh->mainchan,(char *)in,var_91);
      }
      goto LAB_0002db95;
    }
    if (var_67 != (type_3 *)0x0) {
      if (var_67->type == 99) {
        var_24(ssh->frontend,"Started a shell/command");
        goto LAB_0002db48;
      }
      if (var_67->type == 100) {
        if ((ssh->fallback_cmd == 0) && (var_30 = var_48(ssh->conf,0x15), *var_30 != '\0'))
        {
          var_24(ssh->frontend,"Primary command failed; attempting fallback");
          ssh->fallback_cmd = 1;
          goto LAB_0002feab;
        }
        var_30 = "Server refused to start a shell/command";
      }
      else {
        var_30 = "Unexpected response to shell/command request: packet type %d";
      }
      goto LAB_0002dba9;
    }
  }
  *var_2 = 0x2a90;
LAB_0002d320:
  if (var_106 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_107();
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void __regparm3 MASKED(int param_1,undefined4 param_2,int param_3,int *param_4)

{
  char cVar1;
  code *pcVar2;
  uint uVar3;
  size_t sVar4;
  int iVar5;
  int iVar6;
  int iVar7;
  int *piVar8;
  undefined1 *__dest;
  int *piVar9;
  undefined4 *puVar10;
  undefined4 uVar11;
  uint uVar12;
  undefined1 *puVar13;
  void *pvVar14;
  undefined *puVar15;
  char *pcVar16;
  undefined4 uVar17;
  int iVar18;
  undefined4 extraout_ECX;
  undefined4 extraout_ECX_00;
  undefined4 extraout_ECX_01;
  uint *puVar19;
  undefined4 extraout_EDX;
  uint *puVar20;
  char *pcVar21;
  uint *puVar22;
  int in_GS_OFFSET;
  bool bVar23;
  undefined8 uVar24;
  int *local_64;
  char **local_60;
  int local_54;
  undefined4 local_48;
  undefined4 local_44;
  int local_3c;
  int local_38;
  int local_34;
  char *local_30;
  char *local_2c [2];
  undefined4 local_24;
  int local_20;
  undefined4 uStack_14;
  
  uStack_14 = 0x2d23b;
  piVar8 = *(int **)(param_1 + 0x1d0);
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  if (piVar8 == (int *)0x0) {
    piVar8 = (int *)FUN_0001c990(1,0xe8);
    *(int **)(param_1 + 0x1d0) = piVar8;
    *piVar8 = 0;
LAB_0002d8d0:
    iVar7 = *(int *)(param_1 + 0xec);
    *(code **)(param_1 + 0x288) = FUN_0003beb0;
    *(code **)(param_1 + 0x338) = FUN_0003beb0;
    *(code **)(param_1 + 0x33c) = FUN_0003beb0;
    *(code **)(param_1 + 0x340) = FUN_0003beb0;
    *(code **)(param_1 + 0x344) = FUN_0003beb0;
    *(code **)(param_1 + 0x360) = FUN_0003beb0;
    *(code **)(param_1 + 0x364) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b4) = FUN_0003beb0;
    *(code **)(param_1 + 0x3b8) = FUN_0003beb0;
    *(code **)(param_1 + 0x3d8) = FUN_0003beb0;
    *(code **)(param_1 + 0x3dc) = FUN_0003beb0;
    *(code **)(param_1 + 0x3e0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3e4) = FUN_0003beb0;
    *(code **)(param_1 + 1000) = FUN_0003beb0;
    *(code **)(param_1 + 0x3ec) = FUN_0003beb0;
    *(code **)(param_1 + 0x3f0) = FUN_0003beb0;
    *(code **)(param_1 + 0x3f4) = FUN_0003beb0;
    piVar8[2] = 0;
    piVar8[0xe] = 0;
    piVar8[0xd] = 0;
    piVar8[0x1c] = 0;
    piVar8[0xb] = 0;
    if (iVar7 == 0) {
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x23);
      if (iVar7 == 0) {
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00033b40();
LAB_0002fadd:
        *piVar8 = 0x246f;
        goto LAB_0002d320;
      }
LAB_0002dbfb:
      if (piVar8[2] == 0) {
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00033b40();
LAB_0002dc2e:
        *piVar8 = 0x247a;
        goto LAB_0002d320;
      }
    }
    else {
LAB_0002d973:
      piVar8[0xd] = 1;
    }
LAB_0002d97a:
    FUN_0001c780(param_1 + 0x178);
    *(code **)(param_1 + 0x344) = FUN_0002bdb0;
    piVar8[0x14] = 0;
    if (piVar8[0xd] == 0) {
      iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
      piVar8[0x2f] = iVar7;
      iVar7 = FUN_000631b0(iVar7);
      if (iVar7 == 0) {
        uVar11 = FUN_00063170(piVar8[0x2f]);
        FUN_00026c00(param_1,"Reading key file \"%.150s\"",uVar11);
        iVar7 = FUN_00052e80(piVar8[0x2f]);
        if ((iVar7 == 9) || (iVar7 == 3)) {
          iVar5 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);
          piVar8[0x14] = iVar5;
          if (iVar5 != 0) {
            piVar8[0x16] = (uint)(iVar7 == 3);
            if (iVar7 != 3) goto LAB_0002fb9e;
            goto LAB_0002fbb1;
          }
LAB_00030219:
          FUN_00026c00(param_1,"Unable to load key (%s)",local_2c[0]);
          pcVar16 = local_2c[0];
          uVar11 = FUN_00063170(piVar8[0x2f]);
          pcVar16 = (char *)FUN_0001d000("Unable to load key file \"%.150s\" (%s)\r\n",uVar11,
                                         pcVar16);
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
        }
        else if (iVar7 == 10) {
          iVar7 = FUN_00051ad0(piVar8[0x2f],piVar8 + 0x18,piVar8 + 0x15,piVar8 + 0x19,local_2c);
          piVar8[0x14] = iVar7;
          if (iVar7 == 0) goto LAB_00030219;
          piVar8[0x16] = 0;
LAB_0002fb9e:
          FUN_00026c00(param_1,"Key file contains public key only",uVar11);
LAB_0002fbb1:
          iVar7 = FUN_00051ea0(piVar8[0x2f],0);
          piVar8[0x17] = iVar7;
        }
        else {
          uVar11 = FUN_00052ed0(iVar7);
          FUN_00026c00(param_1,"Unable to use this key file (%s)",uVar11);
          uVar11 = FUN_00052ed0(iVar7);
          uVar17 = FUN_00063170(piVar8[0x2f]);
          pcVar16 = (char *)FUN_0001d000("Unable to use key file \"%.150s\" (%s)\r\n",uVar17,uVar11)
          ;
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
          piVar8[0x14] = 0;
        }
      }
      piVar8[0x1c] = 0;
      piVar8[0x21] = 0;
      piVar8[0x1f] = 0;
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1c);
      if ((iVar7 != 0) && (iVar7 = FUN_00061870(), iVar7 != 0)) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Pageant is running. Requesting keys.");
        piVar8[0x1a] = 0x1000000;
        *(undefined1 *)(piVar8 + 0x1b) = 0xb;
        iVar7 = FUN_00061990(piVar8 + 0x1a,5,local_2c,piVar8 + 0x1e,FUN_0003be30,param_1);
        *(int *)(param_1 + 0x6d0) = iVar7;
        if (iVar7 != 0) {
LAB_0002eb58:
          *piVar8 = 0x24d9;
          goto LAB_0002d320;
        }
LAB_0002d78a:
        pcVar16 = local_2c[0];
        piVar8[0x1c] = (int)local_2c[0];
        if (((local_2c[0] == (char *)0x0) || (piVar8[0x1e] < 5)) || (local_2c[0][4] != '\f')) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Failed to get reply from Pageant");
        }
        else {
          uVar12 = *(uint *)(local_2c[0] + 5);
          iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                               uVar12 << 0x18);
          piVar8[0x21] = iVar7;
          if (iVar7 < 0) {
            pcVar16 = "Pageant response contained a negative key count %d";
          }
          else {
            puVar22 = (uint *)(pcVar16 + 9);
            iVar5 = piVar8[0x1e] + -9;
            puVar19 = puVar22;
            if (iVar7 == 0) {
LAB_00030479:
              FUN_00026c00(param_1,"Pageant has %d SSH-2 keys",iVar7,puVar19);
              if (piVar8[0x14] != 0) {
                uVar11 = extraout_ECX_00;
                if (0 < piVar8[0x21]) {
                  iVar7 = 0;
                  do {
                    uVar12 = *puVar22;
                    sVar4 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                    piVar8[0x25] = sVar4;
                    if ((sVar4 == piVar8[0x15]) &&
                       (iVar5 = memcmp(puVar22 + 1,(void *)piVar8[0x14],sVar4), iVar5 == 0)) {
                      FUN_00026c00(param_1,"Pageant key #%d matches configured key file",iVar7,0);
                      piVar8[0x20] = iVar7;
                      piVar8[0x1f] = (int)puVar22;
                      goto LAB_0002d7b9;
                    }
                    puVar22 = (uint *)((int)puVar22 + sVar4 + 4);
                    iVar7 = iVar7 + 1;
                    uVar12 = *puVar22;
                    iVar5 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                         (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                    puVar22 = (uint *)((int)puVar22 + iVar5 + 4);
                    uVar11 = extraout_ECX_01;
                  } while (iVar7 < piVar8[0x21]);
                }
                if (piVar8[0x1f] == 0) {
                  FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Configured key file not in Pageant"
                               ,uVar11,uVar11);
                  piVar8[0x21] = 0;
                }
              }
              goto LAB_0002d7b9;
            }
            iVar6 = 0;
            puVar20 = puVar22;
            if (3 < iVar5) {
              while( true ) {
                uVar12 = *puVar20;
                uVar12 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 |
                                      (uVar12 & 0xff00) << 8 | uVar12 << 0x18);
                if (iVar5 - 4U < uVar12) break;
                puVar20 = (uint *)((int)puVar20 + uVar12 + 4);
                uVar3 = *puVar20;
                iVar5 = ((iVar5 - 4U) - uVar12) + -4;
                uVar24 = FUN_0001c400(uVar3 >> 0x18 | (uVar3 & 0xff0000) >> 8 |
                                      (uVar3 & 0xff00) << 8 | uVar3 << 0x18);
                puVar19 = (uint *)((ulonglong)uVar24 >> 0x20);
                iVar18 = (int)uVar24;
                if ((iVar18 < 0) || (iVar5 < iVar18)) break;
                iVar5 = iVar5 - iVar18;
                iVar6 = iVar6 + 1;
                iVar7 = piVar8[0x21];
                if (iVar7 <= iVar6) goto LAB_00030479;
                puVar20 = (uint *)((int)puVar20 + iVar18 + 4);
                if (iVar5 < 4) break;
              }
            }
            pcVar16 = "Pageant response was truncated";
          }
          FUN_00026c00(param_1,pcVar16);
          piVar8[0x21] = 0;
        }
      }
LAB_0002d7b9:
      piVar8[0x13] = 0;
      if (piVar8[0xd] == 0) {
LAB_0002d7cb:
        iVar7 = FUN_000233a0(*(undefined4 *)(param_1 + 0x248));
        *(int *)(param_1 + 0x250) = iVar7;
        if (iVar7 == 0) {
          puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
          piVar8[0xf] = (int)puVar10;
          *puVar10 = 1;
          uVar11 = FUN_0001caa0("SSH login name");
          puVar10[1] = uVar11;
          uVar11 = FUN_0001caa0("login as: ");
          FUN_0001ce70(piVar8[0xf],uVar11,1);
          iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002f3ea:
          if (iVar7 < 0) {
            *(undefined4 *)(param_1 + 0x100) = 1;
            goto LAB_0002e8c8;
          }
          if (iVar7 == 0) {
            FUN_0001c2f0(piVar8[0xf]);
            FUN_00034b00(0,1);
            *piVar8 = 0;
            goto LAB_0002d320;
          }
          uVar11 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));
          *(undefined4 *)(param_1 + 0x250) = uVar11;
          FUN_0001c2f0(piVar8[0xf]);
        }
        else if (((byte)DAT_000a5b0c & 5) != 0) {
          pcVar16 = (char *)FUN_0001d000("Using username \"%s\".\r\n",iVar7);
          strlen(pcVar16);
          FUN_00029500();
          FUN_0001d220(pcVar16);
        }
LAB_0002d7f9:
        piVar8[0x13] = 1;
        *(undefined4 *)(param_1 + 0x188) = 0;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00033b40();
        piVar8[1] = 0;
        piVar8[3] = 0;
        piVar8[0xd] = 0;
        piVar8[8] = 0;
        piVar8[0xc] = 0;
        piVar8[9] = 0;
        if (piVar8[0x1c] != 0) {
          if (piVar8[0x1f] == 0) {
            piVar8[0x20] = 0;
            piVar8[0x1d] = piVar8[0x1c] + 9;
          }
          else {
            piVar8[0x1d] = piVar8[0x1f];
          }
        }
LAB_0002d310:
        *piVar8 = 0x25a0;
        goto LAB_0002d320;
      }
    }
    else {
      piVar8[0x13] = 0;
    }
LAB_0002d9b1:
    *(undefined4 *)(param_1 + 0x344) = 0;
    if (piVar8[0x14] != 0) {
      FUN_0001d220(piVar8[0x18]);
      FUN_0001d220(piVar8[0x14]);
      FUN_0001d220(piVar8[0x19]);
    }
    if (piVar8[0x1c] != 0) {
      FUN_0001d220(piVar8[0x1c]);
    }
    if ((piVar8[0xe] != 0) && (*(int *)(param_1 + 0xec) == 0)) {
      FUN_000306b0(0);
    }
    uVar11 = FUN_000612a0(FUN_00026aa0);
    *(undefined4 *)(param_1 + 0x124) = uVar11;
    *(code **)(param_1 + 0x3e4) = FUN_000373f0;
    *(code **)(param_1 + 0x3b0) = FUN_00034300;
    iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2d);
    if (iVar7 != 0) {
      *(undefined4 *)(param_1 + 0x128) = 0;
LAB_0002da71:
      *(code **)(param_1 + 0x3ec) = FUN_00037180;
      *(code **)(param_1 + 1000) = FUN_00037180;
      *(code **)(param_1 + 0x3f0) = FUN_00037780;
      *(code **)(param_1 + 0x3f4) = FUN_00037680;
      *(code **)(param_1 + 0x3dc) = FUN_00037580;
      *(code **)(param_1 + 0x3e0) = FUN_00035460;
      *(code **)(param_1 + 0x3f8) = FUN_00034d80;
      *(code **)(param_1 + 0x3d8) = FUN_00033b60;
      *(code **)(param_1 + 0x3fc) = FUN_000374f0;
      *(code **)(param_1 + 0x400) = FUN_000374f0;
      if (*(int *)(param_1 + 0xf4) != 0) {
        FUN_0005c140(*(int *)(param_1 + 0xf4),*(undefined4 *)(param_1 + 8));
      }
      if ((*(int *)(param_1 + 0x128) != 0) && (iVar7 = FUN_00027380(), iVar7 != 0)) {
        iVar7 = FUN_0002ab60(0);
        piVar8[0x2e] = iVar7;
        FUN_00033b40();
      }
      FUN_00035e50();
      if ((*(int *)(param_1 + 0x128) != 0) && (*(int *)(param_1 + 300) == 0)) {
        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x95);
        if (iVar7 != 0) {
          uVar11 = *(undefined4 *)(param_1 + 0x248);
          uVar17 = FUN_00018b50(uVar11,0x96);
          iVar7 = FUN_0006c310(uVar17,uVar11);
          *(int *)(param_1 + 0x18c) = iVar7;
          if (iVar7 == 0) {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "X11 forwarding not enabled: unable to initialise X display",uVar11,uVar11)
            ;
          }
          else {
            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x97);
            iVar7 = FUN_0006bfc0(*(undefined4 *)(param_1 + 0x194),uVar11);
            *(int *)(param_1 + 400) = iVar7;
            *(undefined4 *)(iVar7 + 0x1c) = *(undefined4 *)(param_1 + 0x18c);
            FUN_00034380(*(undefined4 *)(param_1 + 0x128),0,0);
          }
        }
        iVar7 = FUN_0002cea0(param_1);
        if (iVar7 != 0) {
          FUN_000344e0(*(undefined4 *)(param_1 + 0x128),0,0);
        }
        iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x16);
        if (iVar7 == 0) {
          FUN_000345d0(*(undefined4 *)(param_1 + 0x128),0,0);
        }
        FUN_00034840(*(undefined4 *)(param_1 + 0x128),0,0);
        if (*(int *)(param_1 + 0x174) == 0) {
          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2b);
          uVar11 = 0x14;
        }
        else {
LAB_0002feab:
          local_64 = (int *)FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2c);
          uVar11 = 0x15;
        }
        pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),uVar11);
        if ((local_64 == (int *)0x0) && (*pcVar16 == '\0')) {
          iVar7 = FUN_0002ab60(0);
          piVar8[0x2e] = iVar7;
        }
        else {
          iVar7 = FUN_0002ab60(0);
          piVar8[0x2e] = iVar7;
          FUN_00029e50();
        }
        FUN_00033b40();
LAB_0002f2ad:
        *piVar8 = 0x2a90;
        goto LAB_0002d320;
      }
      *(undefined4 *)(param_1 + 0x104) = 1;
      *(undefined4 *)(param_1 + 0x108) = 1;
LAB_0002db48:
      *(undefined4 *)(param_1 + 0x144) = 3;
      if (*(int *)(param_1 + 0x148) != 0) {
        FUN_00036ab0(param_1,*(undefined4 *)(param_1 + 0x11c),*(undefined4 *)(param_1 + 0x120));
      }
      if (*(int *)(param_1 + 0x14c) != 0) {
        FUN_0003a8b0(param_1,0xc);
      }
      if (*(int *)(param_1 + 0x14) != 0) {
        FUN_0001a2d0(*(int *)(param_1 + 0x14));
      }
      if (*(int *)(param_1 + 0x128) != 0) {
        *(undefined4 *)(param_1 + 0x100) = 1;
      }
LAB_0002db95:
      *piVar8 = 0x2abd;
      goto LAB_0002d320;
    }
    piVar9 = (int *)FUN_0001c990(1,0x5c);
    *(int **)(param_1 + 0x128) = piVar9;
    *piVar9 = param_1;
    FUN_0002c3f0();
    pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);
    if (*pcVar16 == '\0') {
      iVar7 = FUN_0002aae0();
      piVar8[0x2e] = iVar7;
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opening session as main channel");
      FUN_00033b40();
      *(undefined4 *)(param_1 + 300) = 0;
    }
    else {
      uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x2f);
      uVar17 = FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x2e);
      FUN_0002d130(*(undefined4 *)(param_1 + 0x128),uVar17,uVar11,"main channel");
      *(undefined4 *)(param_1 + 300) = 1;
    }
LAB_0002e0c6:
    *piVar8 = 0x2a03;
    goto LAB_0002d320;
  }
  iVar7 = *piVar8;
  if (iVar7 == 0x27b6) {
    if (param_4 == (int *)0x0) {
LAB_0002d664:
      *piVar8 = 0x27b6;
      goto LAB_0002d320;
    }
    if (param_4[2] == 0x3c) {
      FUN_000273d0();
      piVar8[0x34] = local_34;
      sVar4 = piVar8[0x32];
      piVar8[0x35] = (int)local_30;
      if ((((local_34 == sVar4 + 2) && (*local_30 == '\x06')) && (sVar4 == (int)local_30[1])) &&
         (iVar7 = memcmp(local_30 + 2,(void *)piVar8[0x33],sVar4), iVar7 == 0)) {
        iVar7 = (**(code **)(piVar8[0x30] + 0xc))
                          (piVar8[0x30],*(undefined4 *)(param_1 + 0x6a4),piVar8 + 0x38);
        piVar8[0x39] = iVar7;
        if (iVar7 == 0) {
          iVar7 = (**(code **)(piVar8[0x30] + 0x1c))(piVar8[0x30],piVar8 + 0x31);
          piVar8[0x39] = iVar7;
          if (iVar7 == 0) {
            piVar8[0x34] = 0;
            piVar8[0x35] = 0;
            piVar8[0x36] = 0;
            piVar8[0x37] = 0;
LAB_0002efad:
            local_64 = piVar8 + 0x31;
            pcVar2 = *(code **)(piVar8[0x30] + 0x14);
            uVar11 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x28);
            uVar12 = (*pcVar2)(piVar8[0x30],local_64,piVar8[0x38],uVar11,piVar8 + 0x34,piVar8 + 0x36
                              );
            piVar8[0x39] = uVar12;
            if (uVar12 < 2) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication initialised",
                           extraout_ECX,extraout_ECX);
              if (piVar8[0x36] != 0) {
                puVar10 = (undefined4 *)FUN_00029d20();
                piVar8[0x2e] = (int)puVar10;
                local_24 = 0;
                FUN_00029c40();
                puVar10[6] = *puVar10;
                FUN_00029dc0();
                FUN_00033b40();
                (**(code **)(piVar8[0x30] + 0x18))
                          (piVar8[0x30],piVar8 + 0x36,extraout_EDX,extraout_EDX);
              }
              iVar7 = piVar8[0x39];
              if (iVar7 == 1) {
LAB_0002fcf7:
                *piVar8 = 0x2807;
                goto LAB_0002d320;
              }
            }
            else {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                           "GSSAPI authentication initialisation failed",uVar12,uVar12);
              iVar7 = (**(code **)(piVar8[0x30] + 0x2c))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32);
              if (iVar7 == 0) {
                FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar8[0x33],0,0);
                FUN_0001d220(piVar8[0x33]);
                iVar7 = piVar8[0x39];
              }
              else {
                iVar7 = piVar8[0x39];
              }
            }
LAB_0002f049:
            if (iVar7 == 0) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication loop finished OK"
                          );
              piVar9 = (int *)FUN_00029d20();
              iVar7 = *piVar9;
              piVar8[0x2e] = (int)piVar9;
              local_24 = 0;
              FUN_00029c40();
              piVar9[6] = *piVar9;
              FUN_00029dc0();
              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,0x32);
              FUN_00029c40();
              FUN_00029e50();
              FUN_00029e50();
              FUN_00029e50();
              iVar5 = ((int *)piVar8[0x2e])[4];
              piVar8[0x32] = *(int *)piVar8[0x2e] - iVar7;
              piVar8[0x33] = iVar5 + iVar7;
              (**(code **)(piVar8[0x30] + 0x24))(piVar8[0x30],piVar8[0x31],piVar8 + 0x32,local_2c);
              puVar10 = (undefined4 *)FUN_00029d20();
              piVar8[0x2e] = (int)puVar10;
              local_24 = 0;
              FUN_00029c40();
              puVar10[6] = *puVar10;
              FUN_00029dc0();
              FUN_00033b40();
              (**(code **)(piVar8[0x30] + 0x28))(piVar8[0x30],local_2c);
              piVar8[3] = 0;
              iVar7 = piVar8[0x30];
            }
            else {
LAB_0002e970:
              iVar7 = piVar8[0x30];
            }
            local_60 = (char **)(piVar8 + 0x38);
            local_64 = piVar8 + 0x31;
            (**(code **)(iVar7 + 0x10))(iVar7,local_60);
            (**(code **)(piVar8[0x30] + 0x20))(piVar8[0x30],local_64);
          }
          else {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "GSSAPI authentication failed to get credentials",iVar7,iVar7);
            (**(code **)(piVar8[0x30] + 0x10))(piVar8[0x30],piVar8 + 0x38);
          }
        }
        else if (iVar7 == 3) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                       "GSSAPI import name failed - Bad service name",3,3);
        }
        else {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI import name failed",iVar7,iVar7);
        }
      }
      else {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                     "GSSAPI authentication - wrong response from server");
      }
    }
    else {
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication request refused");
    }
    iVar7 = piVar8[3];
LAB_0002d2f8:
    local_30 = (char *)0x0;
    local_2c[0] = (char *)0x0;
    if (iVar7 == 0) goto LAB_0002d310;
LAB_0002d3e0:
    iVar7 = param_1 + 0x178;
    iVar5 = FUN_0001c7f0(iVar7);
    if ((iVar5 != 0) && (((byte)DAT_000a5b0c & 5) != 0)) {
      pcVar16 = (char *)FUN_0001c990(iVar5,1);
      FUN_0001c8e0(iVar7,pcVar16,iVar5);
      puVar15 = PTR_stderr_000a4fa0;
      if (((byte)DAT_000a5b0c & 2) == 0) {
        FUN_00067560(*(undefined4 *)(param_1 + 0x110),pcVar16,iVar5);
      }
      else {
        pcVar21 = pcVar16;
        if (0 < iVar5) {
          do {
            cVar1 = *pcVar21;
            if ((cVar1 != '\r') && ((cVar1 == '\n' || (((int)cVar1 & 0x60U) != 0)))) {
              fputc((int)cVar1,*(FILE **)puVar15);
            }
            pcVar21 = pcVar21 + 1;
          } while (pcVar21 != pcVar16 + iVar5);
        }
      }
      FUN_0001d220(pcVar16);
    }
    FUN_0001c7a0(iVar7);
    if (param_4[2] == 0x34) {
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Access granted");
      piVar8[0xe] = 1;
      piVar8[0xd] = 1;
      goto LAB_0002d9b1;
    }
    if (param_4[2] == 0x33) {
      piVar8[3] = 0;
      FUN_000273d0();
      iVar7 = param_4[6];
      if ((*param_4 == iVar7 || *param_4 - iVar7 < 0) ||
         (cVar1 = *(char *)(param_4[5] + iVar7), param_4[6] = iVar7 + 1, cVar1 == '\0')) {
        iVar7 = piVar8[1];
        if (iVar7 != 0) {
          if (iVar7 - 2U < 2) {
            if (iVar7 == 2) {
              FUN_00029500();
            }
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Server refused our key");
          }
          else if (iVar7 == 1) {
            FUN_00029500();
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "Server refused public-key signature despite accepting key!");
          }
          else if (iVar7 == 7) {
            FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                         "Server refused keyboard-interactive authentication");
          }
          else if (iVar7 != 5) {
            if (iVar7 == 6) {
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                           "Keyboard-interactive authentication failed",6,6);
              FUN_00029500();
            }
            else {
              if (iVar7 != 4) {
                    /* WARNING: Subroutine does not return */
                __assert_fail("s->type == AUTH_TYPE_PASSWORD","ssh.c",0x2600,"do_ssh2_authconn");
              }
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Password authentication failed");
              FUN_00029500();
              iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x1e);
              if (iVar7 != 0) {
                uVar11 = *(undefined4 *)(param_1 + 0x248);
                piVar8[0xd] = 0;
                if ((piVar8[0x13] == 0) || (iVar7 = FUN_000189a0(uVar11,0x1e), iVar7 != 0))
                goto LAB_0002d7cb;
                goto LAB_0002d7f9;
              }
            }
          }
        }
      }
      else {
        FUN_00029500();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Further authentication required");
      }
      iVar7 = FUN_0002bed0();
      piVar8[5] = iVar7;
      iVar7 = FUN_0002bed0();
      piVar8[6] = iVar7;
      uVar12 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x26);
      if (uVar12 != 0) {
        iVar7 = FUN_0002bed0();
        uVar12 = (uint)(iVar7 != 0);
      }
      piVar8[7] = uVar12;
      iVar7 = FUN_000189a0(*(undefined4 *)(param_1 + 0x248),0x27);
      if ((iVar7 == 0) || (iVar7 = FUN_0002bed0(), iVar7 == 0)) {
        piVar8[10] = 0;
      }
      else {
        iVar7 = *(int *)(param_1 + 0x6a8);
        if (iVar7 == 0) {
          iVar7 = FUN_00062e90(*(undefined4 *)(param_1 + 0x248));
          *(int *)(param_1 + 0x6a8) = iVar7;
        }
        piVar8[10] = (uint)(0 < *(int *)(iVar7 + 4));
      }
    }
    else {
      if (piVar8[1] != 5) {
        pcVar16 = "Strange packet received during authentication: type %d";
        goto LAB_0002dba9;
      }
      piVar8[3] = 0;
    }
    *(undefined4 *)(param_1 + 0x188) = 0;
    if (piVar8[5] != 0) {
      if ((piVar8[9] == 0) && (piVar8[0x21] != 0)) {
        *(undefined4 *)(param_1 + 0x188) = 1;
        FUN_00026c00(param_1,"Trying Pageant key #%d",piVar8[0x20]);
        uVar12 = *(uint *)piVar8[0x1d];
        iVar6 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        iVar5 = piVar8[0x1d];
        piVar8[0x25] = iVar6;
        iVar7 = iVar5 + 4;
        piVar8[0x22] = iVar7;
        piVar8[0x1d] = iVar7 + iVar6;
        uVar12 = *(uint *)(iVar5 + 4);
        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        piVar8[0x26] = iVar7;
        piVar8[0x23] = piVar8[0x22] + 4;
        uVar12 = *(uint *)piVar8[0x1d];
        iVar7 = FUN_0001c400(uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                             uVar12 << 0x18);
        piVar8[0x27] = iVar7;
        piVar8[0x24] = piVar8[0x1d] + 4;
        piVar8[0x1d] = piVar8[0x1d] + 4 + iVar7;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        FUN_00033b40();
        piVar8[1] = 3;
        goto LAB_0002e2e0;
      }
      if (((piVar8[0x14] != 0) && (piVar8[0x16] != 0)) && (piVar8[8] == 0)) {
        *(undefined4 *)(param_1 + 0x188) = 1;
        piVar8[8] = 1;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        FUN_00029e50();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        FUN_00033b40();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offered public key");
LAB_0002f4f1:
        *piVar8 = 0x26df;
        goto LAB_0002d320;
      }
    }
    if ((piVar8[10] != 0) && (piVar8[0xb] == 0)) {
      piVar8[1] = 5;
      piVar8[0xb] = 1;
      iVar7 = DAT_0007d228;
      piVar8[3] = 1;
      local_64 = (int *)0x0;
      *(undefined4 *)(param_1 + 0x188) = 3;
      piVar8[0x30] = 0;
      if (iVar7 < 1) {
LAB_000301fa:
                    /* WARNING: Subroutine does not return */
        __assert_fail("s->gsslib","ssh.c",0x2799,"do_ssh2_authconn");
      }
      do {
        iVar6 = FUN_00018a70(*(undefined4 *)(param_1 + 0x248),0x29,local_64);
        iVar5 = (*(undefined4 **)(param_1 + 0x6a8))[1];
        if (0 < iVar5) {
          piVar9 = (int *)**(undefined4 **)(param_1 + 0x6a8);
          if (iVar6 == *piVar9) {
LAB_0002ebb0:
            piVar8[0x30] = (int)piVar9;
            goto LAB_0002d550;
          }
          iVar18 = 0;
          while( true ) {
            piVar9 = piVar9 + 0x15;
            iVar18 = iVar18 + 1;
            if (iVar18 == iVar5) break;
            if (*piVar9 == iVar6) goto LAB_0002ebb0;
          }
        }
        local_64 = (int *)((int)local_64 + 1);
      } while ((int *)iVar7 != local_64);
      piVar9 = (int *)piVar8[0x30];
LAB_0002d550:
      if (piVar9 == (int *)0x0) goto LAB_000301fa;
      if (piVar9[1] != 0) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),piVar9[1]);
      }
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting GSSAPI authentication");
      (**(code **)(piVar8[0x30] + 8))(piVar8[0x30],piVar8 + 0x32);
      local_24 = 0x1000000;
      FUN_00029c40();
      FUN_00029e10();
      FUN_00029c40();
      FUN_00029c40();
      FUN_00029c40();
      FUN_00033b40();
      goto LAB_0002d664;
    }
    if ((piVar8[7] != 0) && (piVar8[0xc] == 0)) {
      piVar8[1] = 6;
      *(undefined4 *)(param_1 + 0x188) = 4;
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00033b40();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Attempting keyboard-interactive authentication"
                  );
LAB_0002e166:
      *piVar8 = 0x284b;
      goto LAB_0002d320;
    }
    if (piVar8[6] == 0) {
      uVar11 = FUN_0001d000("No supported authentication methods available (server sent: %.*s)",
                            local_2c[0],local_30);
      FUN_00034b00(0xe,0);
      FUN_0001d220(uVar11);
      *piVar8 = 0;
      goto LAB_0002d320;
    }
    *(undefined4 *)(param_1 + 0x188) = 2;
    puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
    piVar8[0xf] = (int)puVar10;
    *puVar10 = 1;
    uVar11 = FUN_0001caa0("SSH password");
    puVar10[1] = uVar11;
    uVar11 = FUN_0001d000("%s@%s\'s password: ",*(undefined4 *)(param_1 + 0x250),
                          *(undefined4 *)(param_1 + 0xf8));
    FUN_0001ce70(piVar8[0xf],uVar11,0);
    iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002dc60:
    if (iVar7 < 0) {
      *(undefined4 *)(param_1 + 0x100) = 1;
LAB_0002d68e:
      *piVar8 = 0x28e8;
      goto LAB_0002d320;
    }
    iVar5 = piVar8[0xf];
    if (iVar7 != 0) {
      iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));
      piVar8[0x12] = iVar7;
      FUN_0001c2f0(piVar8[0xf]);
      iVar7 = FUN_00029d20();
      piVar8[0x2e] = iVar7;
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029e50();
      FUN_00029c40();
      FUN_00029e50();
      FUN_00038450();
      FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent password");
      piVar8[1] = 4;
      goto LAB_0002dd1c;
    }
LAB_0002ea6c:
    FUN_0001c2f0(iVar5);
LAB_0002ea71:
    FUN_00034b00(0xd,1);
    *piVar8 = 0;
    goto LAB_0002d320;
  }
  if (iVar7 < 0x27b7) {
    if (iVar7 == 0x2561) {
      if (param_4 == (int *)0x0) {
        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
        *(undefined4 *)(param_1 + 0x100) = 0;
        goto LAB_0002f3ea;
      }
LAB_0002e8c8:
      *piVar8 = 0x2561;
      goto LAB_0002d320;
    }
    if (iVar7 < 0x2562) {
      if (iVar7 == 0x246f) {
        if (param_4 == (int *)0x0) goto LAB_0002fadd;
        if (param_4[2] != 6) goto LAB_0002dbfb;
        piVar8[2] = 1;
        goto LAB_0002d97a;
      }
      if (iVar7 < 0x2470) {
        if (iVar7 == 0) goto LAB_0002d8d0;
        goto LAB_0002d8a4;
      }
      if (iVar7 == 0x247a) {
        if (param_4 != (int *)0x0) {
          if (param_4[2] != 6) {
            pcVar16 = "Server refused service request";
            goto LAB_0002dba9;
          }
          goto LAB_0002d973;
        }
        goto LAB_0002dc2e;
      }
      if (iVar7 != 0x24d9) goto LAB_0002d8a4;
      if (param_4 != (int *)0x0) goto LAB_0002dba0;
      if (0 < param_3) goto LAB_0002eb58;
      local_2c[0] = *(char **)(param_1 + 0x254);
      piVar8[0x1e] = *(int *)(param_1 + 600);
      goto LAB_0002d78a;
    }
    if (iVar7 == 0x2696) {
      if (param_4 != (int *)0x0) {
LAB_0002dba0:
        pcVar16 = "Unexpected data from server while waiting for agent response";
        goto LAB_0002dba9;
      }
      if (0 < param_3) {
LAB_0002f388:
        *piVar8 = 0x2696;
        goto LAB_0002d320;
      }
      local_2c[0] = *(char **)(param_1 + 0x254);
      piVar8[0x29] = *(int *)(param_1 + 600);
LAB_0002e806:
      piVar8[0x2d] = (int)local_2c[0];
      FUN_0001d220(piVar8[0x2c]);
      iVar7 = piVar8[0x2d];
      if (iVar7 != 0) {
        if (((piVar8[0x29] < 9) || (*(char *)(iVar7 + 4) != '\x0e')) ||
           (uVar12 = *(uint *)(iVar7 + 5),
           piVar8[0x29] - 9U <
           (uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 | uVar12 << 0x18))) {
          pcVar16 = "Pageant failed to answer challenge";
          goto LAB_0002dba9;
        }
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sending Pageant\'s response");
        uVar12 = *(uint *)(piVar8[0x2d] + 5);
        FUN_0002bf40(piVar8[0x25],piVar8[0x2d] + 9,
                     uVar12 >> 0x18 | (uVar12 & 0xff0000) >> 8 | (uVar12 & 0xff00) << 8 |
                     uVar12 << 0x18);
        FUN_00033b40();
        piVar8[1] = 1;
      }
LAB_0002d6ed:
      if (piVar8[0x1f] == 0) {
        iVar5 = piVar8[0x20];
        iVar7 = piVar8[3];
        piVar8[0x20] = iVar5 + 1;
        if (piVar8[0x21] <= iVar5 + 1) {
          piVar8[9] = 1;
        }
      }
      else {
        piVar8[9] = 1;
        iVar7 = piVar8[3];
        piVar8[8] = 1;
      }
      goto LAB_0002d2f8;
    }
    if (0x2696 < iVar7) {
      if (iVar7 != 0x26df) {
        if (iVar7 == 0x2703) {
          if (param_4 == (int *)0x0) {
            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
            *(undefined4 *)(param_1 + 0x100) = 0;
            goto LAB_0002dd4a;
          }
LAB_0002d72e:
          *piVar8 = 0x2703;
          goto LAB_0002d320;
        }
        goto LAB_0002d8a4;
      }
      if (param_4 != (int *)0x0) {
        if (param_4[2] == 0x3c) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Offer of public key accepted");
          if (((byte)DAT_000a5b0c & 1) != 0) {
            FUN_00029500();
            strlen((char *)piVar8[0x19]);
            FUN_00029500();
            FUN_00029500();
          }
          while (piVar8[0x17] != 0) {
            puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
            piVar8[0xf] = (int)puVar10;
            *puVar10 = 0;
            uVar11 = FUN_0001caa0("SSH key passphrase");
            puVar10[1] = uVar11;
            uVar11 = FUN_0001d000("Passphrase for key \"%.100s\": ",piVar8[0x19]);
            FUN_0001ce70(piVar8[0xf],uVar11,0);
            iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002dd4a:
            if (iVar7 < 0) {
              *(undefined4 *)(param_1 + 0x100) = 1;
              goto LAB_0002d72e;
            }
            iVar5 = piVar8[0xf];
            if (iVar7 == 0) goto LAB_0002ea6c;
            pcVar16 = (char *)FUN_0001caa0(*(undefined4 *)(**(int **)(iVar5 + 0x18) + 8));
            FUN_0001c2f0(piVar8[0xf]);
            iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
            piVar8[0x2f] = iVar7;
            local_64 = (int *)FUN_000509f0(iVar7,pcVar16,local_2c);
            if (pcVar16 == (char *)0x0) {
              if (local_64 == (int *)PTR_DAT_000a4fac) goto LAB_0002f5cf;
              goto LAB_0002ddec;
            }
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(pcVar16);
            if (local_64 != (int *)PTR_DAT_000a4fac) goto LAB_0002ddec;
            FUN_00029500();
          }
          iVar7 = FUN_00018f20(*(undefined4 *)(param_1 + 0x248),0x20);
          piVar8[0x2f] = iVar7;
          local_64 = (int *)FUN_000509f0(iVar7,0,local_2c);
          if (local_64 != (int *)PTR_DAT_000a4fac) {
LAB_0002ddec:
            local_60 = local_2c;
            if (local_64 != (int *)0x0) {
              iVar7 = FUN_00029d20();
              piVar8[0x2e] = iVar7;
              FUN_00029e50();
              FUN_00029e50();
              FUN_00029e50();
              local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);
              FUN_00029c40();
              FUN_00029e50();
              uVar11 = (**(code **)(*local_64 + 0xc))(local_64[1],&local_30);
              puVar10 = (undefined4 *)piVar8[0x2e];
              local_24 = 0;
              FUN_00029c40();
              puVar10[6] = *puVar10;
              FUN_00029dc0();
              iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);
              if ((*(byte *)(param_1 + 0x50) & 0x80) != 0) {
                iVar7 = iVar7 + -4;
              }
              puVar13 = (undefined1 *)FUN_0001c990(iVar7,1);
              if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
                local_54 = 4;
                *puVar13 = *(undefined1 *)(param_1 + 0xe7);
                puVar13[1] = (char)*(undefined2 *)(param_1 + 0xe6);
                puVar13[2] = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);
                puVar13[3] = (char)*(undefined4 *)(param_1 + 0xe4);
                __dest = puVar13 + 4;
              }
              else {
                local_54 = 0;
                __dest = puVar13;
              }
              memcpy(__dest,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));
              local_54 = local_54 + *(int *)(param_1 + 0xe4);
              memcpy(puVar13 + local_54,(void *)(((int *)piVar8[0x2e])[4] + 5),
                     *(int *)piVar8[0x2e] - 5);
              if (iVar7 != local_54 + -5 + *(int *)piVar8[0x2e]) {
                    /* WARNING: Subroutine does not return */
                __assert_fail("p == sigdata_len","ssh.c",0x2763,"do_ssh2_authconn");
              }
              uVar17 = (**(code **)(*local_64 + 0x2c))(local_64[1],puVar13,iVar7,local_60);
              FUN_0002bf40(local_30,uVar17,local_2c[0]);
              FUN_0001d220(uVar11);
              FUN_0001d220(uVar17);
              FUN_0001d220(puVar13);
              FUN_00033b40();
              FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent public key signature");
              piVar8[1] = 1;
              (**(code **)(*local_64 + 4))(local_64[1]);
              FUN_0001d220(local_64[2]);
              FUN_0001d220(local_64);
              iVar7 = piVar8[3];
              goto LAB_0002d2f8;
            }
          }
LAB_0002f5cf:
          FUN_00029500();
          strlen(local_2c[0]);
          FUN_00029500();
          FUN_00029500();
          iVar7 = piVar8[3];
          goto LAB_0002d2f8;
        }
        piVar8[3] = 1;
        piVar8[1] = 2;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
      goto LAB_0002f4f1;
    }
    if (iVar7 == 0x25a0) {
      if (param_4 != (int *)0x0) goto LAB_0002d3e0;
      goto LAB_0002d310;
    }
    if (iVar7 != 0x2650) goto LAB_0002d8a4;
    if (param_4 != (int *)0x0) {
      if (param_4[2] == 0x3c) {
        if (((byte)DAT_000a5b0c & 1) != 0) {
          FUN_00029500();
          FUN_00029500();
          FUN_00029500();
        }
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        local_2c[0] = (char *)CONCAT31(local_2c[0]._1_3_,1);
        FUN_00029c40();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        puVar10 = (undefined4 *)piVar8[0x2e];
        local_24 = 0;
        FUN_00029c40();
        puVar10[6] = *puVar10;
        FUN_00029dc0();
        iVar7 = *(int *)piVar8[0x2e] + -1 + *(int *)(param_1 + 0xe4);
        piVar8[0x28] = iVar7;
        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
          iVar7 = iVar7 + 4;
        }
        else {
          piVar8[0x28] = iVar7 + -4;
        }
        iVar7 = iVar7 + 5 + piVar8[0x25];
        piVar8[0x2a] = iVar7 + 4;
        puVar13 = (undefined1 *)FUN_0001c990(iVar7 + 8,1);
        piVar8[0x2c] = (int)puVar13;
        *puVar13 = *(undefined1 *)((int)piVar8 + 0xab);
        *(char *)(piVar8[0x2c] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xaa);
        *(char *)(piVar8[0x2c] + 2) = (char)((uint)piVar8[0x2a] >> 8);
        *(char *)(piVar8[0x2c] + 3) = (char)piVar8[0x2a];
        piVar8[0x2b] = piVar8[0x2c] + 5;
        *(undefined1 *)(piVar8[0x2c] + 4) = 0xd;
        *(undefined1 *)piVar8[0x2b] = *(undefined1 *)((int)piVar8 + 0x97);
        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0x96);
        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x25] >> 8);
        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x25];
        iVar7 = piVar8[0x2b];
        piVar8[0x2b] = iVar7 + 4;
        memcpy((void *)(iVar7 + 4),(void *)piVar8[0x22],piVar8[0x25]);
        iVar7 = piVar8[0x2b];
        piVar8[0x2b] = piVar8[0x25] + iVar7;
        *(undefined1 *)(piVar8[0x25] + iVar7) = *(undefined1 *)((int)piVar8 + 0xa3);
        *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)((int)piVar8 + 0xa2);
        *(char *)(piVar8[0x2b] + 2) = (char)((uint)piVar8[0x28] >> 8);
        *(char *)(piVar8[0x2b] + 3) = (char)piVar8[0x28];
        iVar7 = piVar8[0x2b];
        pvVar14 = (void *)(iVar7 + 4);
        piVar8[0x2b] = (int)pvVar14;
        if ((*(byte *)(param_1 + 0x50) & 0x80) == 0) {
          *(undefined1 *)(iVar7 + 4) = *(undefined1 *)(param_1 + 0xe7);
          *(char *)(piVar8[0x2b] + 1) = (char)*(undefined2 *)(param_1 + 0xe6);
          *(char *)(piVar8[0x2b] + 2) = (char)((uint)*(undefined4 *)(param_1 + 0xe4) >> 8);
          *(char *)(piVar8[0x2b] + 3) = (char)*(undefined4 *)(param_1 + 0xe4);
          pvVar14 = (void *)(piVar8[0x2b] + 4);
          piVar8[0x2b] = (int)pvVar14;
        }
        memcpy(pvVar14,(void *)(param_1 + 0xa4),*(size_t *)(param_1 + 0xe4));
        pvVar14 = (void *)(*(int *)(param_1 + 0xe4) + piVar8[0x2b]);
        iVar7 = *(int *)piVar8[0x2e];
        iVar5 = ((int *)piVar8[0x2e])[4];
        piVar8[0x2b] = (int)pvVar14;
        memcpy(pvVar14,(void *)(iVar5 + 5),iVar7 - 5);
        puVar13 = (undefined1 *)(piVar8[0x2b] + -5 + *(int *)piVar8[0x2e]);
        piVar8[0x2b] = (int)puVar13;
        *puVar13 = 0;
        *(undefined1 *)(piVar8[0x2b] + 1) = 0;
        *(undefined1 *)(piVar8[0x2b] + 2) = 0;
        *(undefined1 *)(piVar8[0x2b] + 3) = 0;
        iVar7 = FUN_00061990(piVar8[0x2c],piVar8[0x2a] + 4,local_2c,piVar8 + 0x29,FUN_0003be30,
                             param_1);
        *(int *)(param_1 + 0x6d0) = iVar7;
        if (iVar7 != 0) goto LAB_0002f388;
        goto LAB_0002e806;
      }
      piVar8[3] = 1;
      goto LAB_0002d6ed;
    }
LAB_0002e2e0:
    *piVar8 = 0x2650;
    goto LAB_0002d320;
  }
  if (iVar7 == 0x2917) {
    if (param_4 != (int *)0x0) {
      iVar7 = param_4[2];
      pcVar16 = "Server requested password change";
joined_r0x0002e302:
      if (iVar7 == 0x3c) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),pcVar16);
        strlen(pcVar16);
        FUN_00029500();
        FUN_00029500();
        FUN_000273d0();
        puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
        piVar8[0xf] = (int)puVar10;
        *puVar10 = 1;
        uVar11 = FUN_0001caa0("New SSH password");
        puVar10[1] = uVar11;
        iVar7 = piVar8[0xf];
        pcVar16 = local_30;
        if (local_30 == (char *)0x0) {
          pcVar16 = "";
        }
        uVar11 = FUN_0001d000("%.*s",local_2c[0],pcVar16);
        *(undefined4 *)(iVar7 + 0xc) = uVar11;
        *(undefined4 *)(piVar8[0xf] + 0x10) = 1;
        uVar11 = FUN_0001caa0("Current password (blank for previously entered password): ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        uVar11 = FUN_0001caa0("Enter new password: ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        uVar11 = FUN_0001caa0("Confirm new password: ");
        FUN_0001ce70(piVar8[0xf],uVar11,0);
        while( true ) {
          iVar7 = FUN_000675f0(piVar8[0xf],0,0);
LAB_0002e42a:
          if (iVar7 < 0) {
            *(undefined4 *)(param_1 + 0x100) = 1;
            goto LAB_0002e5f0;
          }
          if (iVar7 == 0) {
            FUN_0001c2f0(piVar8[0xf]);
            pcVar16 = (char *)piVar8[0x12];
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(piVar8[0x12]);
            goto LAB_0002ea71;
          }
          piVar9 = *(int **)(piVar8[0xf] + 0x18);
          if (**(char **)(*piVar9 + 8) != '\0') {
            pcVar16 = (char *)piVar8[0x12];
            sVar4 = strlen(pcVar16);
            FUN_0001d300(pcVar16,sVar4);
            FUN_0001d220(piVar8[0x12]);
            iVar7 = FUN_0001caa0(*(undefined4 *)(**(int **)(piVar8[0xf] + 0x18) + 8));
            piVar8[0x12] = iVar7;
            piVar9 = *(int **)(piVar8[0xf] + 0x18);
          }
          iVar7 = strcmp(*(char **)(piVar9[1] + 8),*(char **)(piVar9[2] + 8));
          if (iVar7 == 0) break;
          FUN_00029500();
        }
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029e50();
        FUN_00029c40();
        FUN_00029e50();
        FUN_00029e50();
        FUN_0001c2f0(piVar8[0xf]);
        FUN_00038450();
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Sent new password");
LAB_0002e515:
        *piVar8 = 0x2999;
        goto LAB_0002d320;
      }
      pcVar16 = (char *)piVar8[0x12];
      piVar8[3] = 1;
      sVar4 = strlen(pcVar16);
      FUN_0001d300(pcVar16,sVar4);
      FUN_0001d220(piVar8[0x12]);
      iVar7 = piVar8[3];
      goto LAB_0002d2f8;
    }
LAB_0002dd1c:
    *piVar8 = 0x2917;
    goto LAB_0002d320;
  }
  if (0x2917 < iVar7) {
    if (iVar7 == 0x2a03) {
      if (param_4 == (int *)0x0) goto LAB_0002e0c6;
      if (param_4[2] - 0x5bU < 2) {
        iVar5 = FUN_00026ae0();
        iVar7 = *(int *)(param_1 + 0x128);
        if (iVar5 == *(int *)(iVar7 + 8)) {
          if (param_4[2] == 0x5c) {
            uVar11 = FUN_000283a0();
            FUN_0001d000("Server refused to open main channel: %s",uVar11);
            FUN_00027d60();
            FUN_0001d220(uVar11);
            *piVar8 = 0;
            goto LAB_0002d320;
          }
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 4) = uVar11;
          iVar7 = *(int *)(param_1 + 0x128);
          *(undefined4 *)(iVar7 + 0x10) = 0;
          *(undefined4 *)(iVar7 + 0xc) = 0;
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 0x2c) = uVar11;
          iVar7 = *(int *)(param_1 + 0x128);
          uVar11 = FUN_00026ae0();
          *(undefined4 *)(iVar7 + 0x30) = uVar11;
          FUN_00061e70(*(undefined4 *)(param_1 + 0x110));
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Opened main channel");
          goto LAB_0002da71;
        }
        pcVar16 = "Server\'s response to main channel open cited wrong channel number";
      }
      else {
        pcVar16 = "Server sent strange packet %d in response to main channel open request";
      }
    }
    else {
      if (iVar7 < 0x2a04) {
        if (iVar7 == 0x2956) {
          if (param_4 == (int *)0x0) {
            iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
            *(undefined4 *)(param_1 + 0x100) = 0;
            goto LAB_0002e42a;
          }
LAB_0002e5f0:
          *piVar8 = 0x2956;
          goto LAB_0002d320;
        }
        if (iVar7 == 0x2999) {
          if (param_4 != (int *)0x0) {
            iVar7 = param_4[2];
            pcVar16 = "Server rejected new password";
            goto joined_r0x0002e302;
          }
          goto LAB_0002e515;
        }
LAB_0002d8a4:
        *piVar8 = 0;
        goto LAB_0002d320;
      }
      if (iVar7 != 0x2a90) {
        if (iVar7 != 0x2abd) goto LAB_0002d8a4;
        if (param_4 != (int *)0x0) {
          pcVar16 = "Strange packet received: type %d";
          goto LAB_0002dba9;
        }
        if (*(int *)(param_1 + 0x128) != 0) {
          FUN_00035a60();
        }
        goto LAB_0002db95;
      }
      if (param_4 == (int *)0x0) goto LAB_0002f2ad;
      if (param_4[2] == 99) {
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"Started a shell/command");
        goto LAB_0002db48;
      }
      if (param_4[2] == 100) {
        if ((*(int *)(param_1 + 0x174) == 0) &&
           (pcVar16 = (char *)FUN_00018b50(*(undefined4 *)(param_1 + 0x248),0x15), *pcVar16 != '\0')
           ) {
          FUN_000628e0(*(undefined4 *)(param_1 + 0x110),
                       "Primary command failed; attempting fallback");
          *(undefined4 *)(param_1 + 0x174) = 1;
          goto LAB_0002feab;
        }
        pcVar16 = "Server refused to start a shell/command";
      }
      else {
        pcVar16 = "Unexpected response to shell/command request: packet type %d";
      }
    }
LAB_0002dba9:
    FUN_0001d000(pcVar16);
    FUN_00027d60();
    *piVar8 = 0;
    goto LAB_0002d320;
  }
  if (iVar7 == 0x28a4) {
    if (param_4 == (int *)0x0) {
      iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
      *(undefined4 *)(param_1 + 0x100) = 0;
LAB_0002f51a:
      if (-1 < iVar7) {
        if (iVar7 == 0) {
          iVar5 = piVar8[0xf];
          goto LAB_0002ea6c;
        }
        iVar5 = 0;
        iVar7 = FUN_00029d20();
        piVar8[0x2e] = iVar7;
        FUN_00029e10();
        if (0 < piVar8[0x10]) {
          do {
            iVar5 = iVar5 + 1;
            FUN_00029e50();
          } while (iVar5 < piVar8[0x10]);
        }
        FUN_00038450();
        FUN_0001c2f0(piVar8[0xf]);
        goto LAB_0002f35a;
      }
      *(undefined4 *)(param_1 + 0x100) = 1;
    }
    *piVar8 = 0x28a4;
  }
  else {
    if (iVar7 < 0x28a5) {
      if (iVar7 == 0x2807) {
        if (param_4 == (int *)0x0) goto LAB_0002fcf7;
        if (param_4[2] == 0x3d) {
          FUN_000273d0();
          piVar8[0x35] = (int)local_30;
          piVar8[0x34] = local_34;
          iVar7 = piVar8[0x39];
          if (iVar7 == 1) goto LAB_0002efad;
          goto LAB_0002f049;
        }
        FUN_000628e0(*(undefined4 *)(param_1 + 0x110),"GSSAPI authentication - bad server response")
        ;
        piVar8[0x39] = 4;
        goto LAB_0002e970;
      }
      if (iVar7 != 0x284b) goto LAB_0002d8a4;
      if (param_4 != (int *)0x0) {
        if (param_4[2] == 0x3c) goto LAB_0002eda0;
        piVar8[3] = 1;
        piVar8[1] = 7;
        piVar8[0xc] = 1;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
      goto LAB_0002e166;
    }
    if (iVar7 != 0x28ca) {
      if (iVar7 != 0x28e8) goto LAB_0002d8a4;
      if (param_4 == (int *)0x0) {
        iVar7 = FUN_000675f0(piVar8[0xf],param_2,param_3);
        *(undefined4 *)(param_1 + 0x100) = 0;
        goto LAB_0002dc60;
      }
      goto LAB_0002d68e;
    }
    if (param_4 != (int *)0x0) {
      if (param_4[2] != 0x3c) {
        piVar8[3] = 1;
        local_30 = (char *)0x0;
        local_2c[0] = (char *)0x0;
        goto LAB_0002d3e0;
      }
LAB_0002eda0:
      FUN_000273d0();
      FUN_000273d0();
      FUN_000273d0();
      puVar10 = (undefined4 *)FUN_0001ca50(*(undefined4 *)(param_1 + 0x110));
      piVar8[0xf] = (int)puVar10;
      *puVar10 = 1;
      iVar7 = FUN_00026ae0();
      piVar8[0x10] = iVar7;
      if (0 < iVar7) {
        iVar7 = 0;
        do {
          FUN_000273d0();
          iVar5 = param_4[6];
          bVar23 = false;
          if (*param_4 != iVar5 && -1 < *param_4 - iVar5) {
            bVar23 = *(char *)(param_4[5] + iVar5) != '\0';
            param_4[6] = iVar5 + 1;
          }
          if (local_2c[0] == (char *)0x0) {
            local_30 = s_<server_failed_to_send_prompt>__000a5120;
            local_2c[0] = (char *)0x20;
          }
          iVar7 = iVar7 + 1;
          uVar11 = FUN_0001d000("%.*s",local_2c[0],local_30);
          FUN_0001ce70(piVar8[0xf],uVar11,bVar23);
        } while (iVar7 < piVar8[0x10]);
      }
      iVar7 = piVar8[0xf];
      if (local_3c == 0) {
        uVar11 = FUN_0001caa0("SSH server authentication");
        *(undefined4 *)(iVar7 + 4) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 8) = 0;
      }
      else {
        uVar11 = FUN_0001d000("SSH server: %.*s",local_3c,local_48);
        *(undefined4 *)(iVar7 + 4) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 8) = 1;
      }
      if (piVar8[0x10] == 0 && local_3c == 0) {
        if (local_38 != 0) {
          puVar15 = &DAT_0007148e;
          goto LAB_0002fa3b;
        }
        *(undefined4 *)(iVar7 + 0x10) = 0;
      }
      else {
        puVar15 = &DAT_0007148e;
        if (local_38 == 0) {
          puVar15 = &DAT_0006f2ee;
        }
LAB_0002fa3b:
        uVar11 = FUN_0001d000("Using keyboard-interactive authentication.%s%.*s",puVar15,local_38,
                              local_44);
        *(undefined4 *)(iVar7 + 0xc) = uVar11;
        iVar7 = piVar8[0xf];
        *(undefined4 *)(iVar7 + 0x10) = 1;
      }
      iVar7 = FUN_000675f0(iVar7,0,0);
      goto LAB_0002f51a;
    }
LAB_0002f35a:
    *piVar8 = 0x28ca;
  }
LAB_0002d320:
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_0006dad0();
}

